问题描述
- JAVA NIO双向通信问题
- 我想要是使用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时新建一个独立线程,定时向客户端发送数据。
时间: 2024-11-05 16:39:49