用mina2做网络编程,在服务端如何主动发送消息 设想这样的应用场景,服务端与客户端建立连接后,服务端会主动向所有或一部分客户端发送数据,这个在mina2中要如何实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为服务端是不可以主动发起连接的,所以楼主要达到目的,首先需要保持连接不断开。因为一旦断开,服务端就不能发送消息了。保持连接不断开的方法很简单,就是每隔一小段时间发送一个简单的无意义的消息(也称为心跳消息)。心跳消息通常由客户端发起。连接保持了之后,服务器端就可以发送消息了。通过什么对象发送呢?当然是 IoSession 对象。连接创建的时候服务器端就创建了这个 IoSession 对象,现在要做的只是将它保存到某个容器对象,当需要向这个客户端发送消息的时候,将 IoSession 对象取出来,调用 write() 方法就可以了,有可能要调用 isConnected() 检查一下连接状态。 我自己倒是发现IoAcceptor类里有一个广播方法broadcast(),通过它可以向所有客户端广播并返回一个Set(WriteFuture),但是如何控制向特定的客户端发消息呢?难道是通过Handler的messageSent()进行过滤? JTable如何设置列的宽度? 请问如何做到只允许一个实例运行? 求助中文处理问题 画图 急!!!求助高手!!!怎么用jsp接收Email中的附件??? 客户端和服务器端程序都有。就是连接不上。程序如下: 【挑战java高手】java和输入法切换的问题 java初学者:关于库的问题 在applet在另一台计算机上的浏览器中运行时不能与在本机运行的java应用程序建立socket通信,为什么?? 一个关于异常的问题?? Java7无法使用java.dyn包 java中的链表问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货