最近需要做一个作业,想实现一个聊天室,聊天室里有不同房间,每个房间支持几十个人同时在线。
以前做过 java 实现的聊天室,工作原理就是:用户和服务器建立一个 socket 连接,服务器每连上一个用户就新建一个 socket 线程,有用户发消息过来就给所有线程进行广播,发送用户的消息,这样其他用户就能收到消息,实现聊天室功能。
现在想做一个支持千人多房间聊天室,可是现在我的思路就是后端用 id 对应每个聊天室数组,一个数组内维护连接 n 各用户的 n 个 socket 线程,原理同上。但这样是不是达不到我想要的千人聊天室的效果,感觉自己想法很局限,只能是 socket 通信吗?现实中的聊天平台是如何实现的呢?后端真的是这么来做的吗?
望各位大牛指点,后端想选用 nodejs , php 不知道可不可以。前端主要是 Android 和 iOS
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.