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

发布于 2021-11-25 18:03:31 字数 141 浏览 663 评论 4

本项目在其他模块也需要使用mina发送数据给客户端,可是在hander外边不知道怎么触发或者发送。我想在hander中设置一个静态的全局变量供外部获取IOsession 来发送消息(或者通过IOSESSION 获得所有的连接中的客户端,群发消息)。不知道这样线程安全吗?会不会死锁?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哑剧 2021-12-02 03:23:40

您的单机的意思是服务器在一台主机上,集群就是服务器分布在多台计算机上吗? 用这种方法获得所有用户可以吗? // 获取所有正在连接的IoSession Collection<IoSession> sessions = session.getService().getManagedSessions().values();您说的用户标志用用户IP可以吧

温柔少女心 2021-12-01 11:55:25

是的。分布式情况下,单机是不可能拿到所有用户链接的。所以不要费劲了。需要引入中间件。

彩扇题诗 2021-12-01 02:02:57

回复
请问 mina 怎么跟随tomcat 启动和关闭

凡尘雨 2021-11-30 10:48:09

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文