java的mina框架做聊天室服务器,怎么广播聊天信息。 java的mina框架做聊天室服务器,怎么广播聊天信息。我现在是遍历保存的SESSION,然后逐个发送信息,有没有更高效的方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建立session池 给每个session发消息 遍历行为是触发行为的基础你要对所有事情处理就需要进行遍历处理只是想办法做在底层还是坐在上层的区别你要做的比较另类可以这么干,反过来做,每个session方一个定时器。。定时从message缓存中去取需要发送的消息 呵呵 不过这么做效率不一定比原来高 一般广播都是服务端轮询每个用户进行发送的。由于广播的内容,都非常小,可能都不到1kByte,所以,速度还是会非常快的。如果楼主还觉得这样不够快,或者发送的广播信息比较巨大,可以参考P2P的扩散技术。我的想法是:让某些用户分担广播发送的工作。比如,有10000个用户在聊天室内,服务端可以指定100个人先将消息发给他们,然后,这100个人,每人再发99个人,就完成广播的扩散了。但是,服务端还要对本次广播的扩散情况进行辅助管理才行。客户端之间的广播传递,可通过UDP/TCP的“打孔技术”进行实现。当然,一般情况下,小信息的广播是绝对不用上述方法的,弊端要更多一些。 如何在保存文件时添加默认后缀名? 一个数据输出问题.. 一道非常简单的递归问题 hibernate和jdbc的批量问题一系列问题 java写文本文件的问题! 对基本语句for,if,break等的问题 如何读入中文文件,总是乱码? topbit(无影雷霆)来拿分,第二份 请问从数据库连接池中获得的一个连接在使用完成后需要close()吗?如果要不就和没用连接池一样了嘛。 StringBuffer传的不是引用吗? Swap 函数问题 刚学的小菜 哥哥姐姐们帮我看一下这个
只是想办法做在底层还是坐在上层的区别你要做的比较另类可以这么干,反过来做,每个session方一个定时器。。定时从message缓存中去取需要发送的消息 呵呵 不过这么做效率不一定比原来高
由于广播的内容,都非常小,可能都不到1kByte,所以,速度还是会非常快的。
如果楼主还觉得这样不够快,或者发送的广播信息比较巨大,可以参考P2P的扩散技术。我的想法是:
让某些用户分担广播发送的工作。
比如,有10000个用户在聊天室内,服务端可以指定100个人先将消息发给他们,
然后,这100个人,每人再发99个人,就完成广播的扩散了。
但是,服务端还要对本次广播的扩散情况进行辅助管理才行。
客户端之间的广播传递,可通过UDP/TCP的“打孔技术”进行实现。当然,一般情况下,小信息的广播是绝对不用上述方法的,弊端要更多一些。