我想要是使用JAVA NIO做一个客户端、服务器**双向通讯**的东东,但是我遇到的问题是:
服务器无法想客户端发送消息,类似这样的方式并不是我想要的:
while(it.hasNext()) {
SelectionKey key = it.next();
if(key.isAcceptable()) {
log.info("Server: SelectionKey is acceptable.");
handler.handleAccept(key);
} else if(key.isReadable()) {
log.info("Server: SelectionKey is readable.");
handler.handleRead(key);
} else if(key.isWritable()) {
log.info("Server: SelectionKey is writable.");
handler.handleWrite(key);
}
it.remove();
我的数据是从前台产生的,**数据产生的时间比较随机**,因此并不能像上述一下作为反馈信息发送回去,那么这种情况该怎么解决呢?
我真的没有C币啊,求懂的人帮下忙啦~~~~
服务器是不能主动发送消息到客户端的。
只能是客户端没隔一段时间,比如1s,就请求一次服务器,获取服务器的消息,服务器才能和客户端通信。
或者 客户端和服务器一直保持sockeet连接,建立心跳。
有多种模式 ,建议直接使用Mina框架。
如最经常用的,在会话打开后SessionOpen时新建一个独立线程,定时向客户端发送数据。