我并不是在谈论一般的聊天应用程序,而是具体地谈论聊天室实现。
因此,在node.js/socket.io中,我想到了两种方法:
1. 为每个聊天室创建一个数组,向该数组中的所有用户广播消息。 2. 向所有用户广播所有消息,在客户端计算机上判断是否属于聊天室,如果是,则接受消息。
第一种方法的缺点在于,随着你的扩展,你会用数组对象淹没服务器内存,我在我的主机上只使用了大约80mb。
第二种方法的缺点在于,向所有人广播消息最终会造成成本,并且淹没客户机将使他们不满意。
我相信有更好的方法来实现聊天室,所以我想请你们帮助我。我寻求首先在服务器端的性能,然后在客户端,它必须是可伸缩的。
因此,在node.js/socket.io中,我想到了两种方法:
1. 为每个聊天室创建一个数组,向该数组中的所有用户广播消息。 2. 向所有用户广播所有消息,在客户端计算机上判断是否属于聊天室,如果是,则接受消息。
第一种方法的缺点在于,随着你的扩展,你会用数组对象淹没服务器内存,我在我的主机上只使用了大约80mb。
第二种方法的缺点在于,向所有人广播消息最终会造成成本,并且淹没客户机将使他们不满意。
我相信有更好的方法来实现聊天室,所以我想请你们帮助我。我寻求首先在服务器端的性能,然后在客户端,它必须是可伸缩的。