我的项目要求在客户端连接到服务器的时候,就会时时的给他每秒一次的推送数据,还有其他的数据有的是5秒一次,有的是1分一次。我试着自己建了多个线程传入ISsession 发送数据 总是报错。如果只开启一个线程就正常。
下面是hander中的代码:
@Override
public void sessionOpened(IoSession session) throws Exception {
System.out.println("【server】sessionOpened ID:" + session.getId());
if (allIoSessions == null) {
allIoSessions = session.getService().getManagedSessions();
}
System.out.println("有人连接,当前客户数:" + allIoSessions.size());
new Thread(new AllPoliceCoordsThread(session, service)).start();
new Thread(new HotPoliceCoordsThread(session, service)).start();
new Thread(new UserCoordsThread(session, service)).start();
}
注释掉两个线程的话,只留一个(1秒发一次)就正常了。可是如果把频率改成1毫秒一次。就算一个线程也要不停地报错
MINA
Java
时隔一年再看这个问题 感触良多