+
 新版

Mina 的 IOSESSION 静态的全局变量可以吗?

颖辉小居 发布于 2016/01/12 10:06
阅读 524
收藏 0
本项目在其他模块也需要使用mina发送数据给客户端,可是在hander外边不知道怎么触发或者发送。我想在hander中设置一个静态的全局变量供外部获取IOsession 来发送消息(或者通过IOSESSION 获得所有的连接中的客户端,群发消息)。不知道这样线程安全吗?会不会死锁?
加载中
0
Grrrr
Grrrr

单机可以这么做,Map<String, IOSession> 用户标示作为key, 然后可以主动的向某个用户发消息。

集群就不可以了,因为单机不能拿到所有的用户,要引入消息中间件,比如redis的pub/sub机制。

Grrrr
Grrrr
是的。分布式情况下,单机是不可能拿到所有用户链接的。所以不要费劲了。需要引入中间件。
颖辉小居
颖辉小居
您的单机的意思是服务器在一台主机上,集群就是服务器分布在多台计算机上吗? 用这种方法获得所有用户可以吗? // 获取所有正在连接的IoSession Collection<IoSession> sessions = session.getService().getManagedSessions().values();您说的用户标志用用户IP可以吧
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部