最近需要做一个作业,想实现一个聊天室,聊天室里有不同房间,每个房间支持几十个人同时在线。
以前做过 java 实现的聊天室,工作原理就是:用户和服务器建立一个 socket 连接,服务器每连上一个用户就新建一个 socket 线程,有用户发消息过来就给所有线程进行广播,发送用户的消息,这样其他用户就能收到消息,实现聊天室功能。
现在想做一个支持千人多房间聊天室,可是现在我的思路就是后端用 id 对应每个聊天室数组,一个数组内维护连接 n 各用户的 n 个 socket 线程,原理同上。但这样是不是达不到我想要的千人聊天室的效果,感觉自己想法很局限,只能是 socket 通信吗?现实中的聊天平台是如何实现的呢?后端真的是这么来做的吗?
望各位大牛指点,后端想选用 nodejs , php 不知道可不可以。前端主要是 Android 和 iOS