我并不是真的在谈论一般的聊天应用程序,而是专门谈论聊天室的实现。
所以在node.js/socket.io中,我想到了两种方法
为每个聊天室创建一个数组,向数组中的所有用户广播消息
向所有用户广播所有消息,在客户端的 PC 上确定他们是否属于聊天室,如果是,则接受该消息。
1 中的弱点是,最终当你扩大规模时,你会用数组对象淹没服务器的内存,而我在主机上只使用了大约 80mb。
2 中的弱点在于,向所有人广播最终代价高昂,并且淹没客户的机器不会让他们开心。
我确信在如何实现聊天室方面有更好的方法,所以这就是我请求你们帮助我的原因。我正在寻找服务器端的性能,然后是客户端,它必须是可扩展的。