我们目前有一套系统带的有 web 管理页面,然后现在有一个需求是实现在系统内拉群组聊天的功能。 1.消息需要持久化,用户随时都可能调出来之前的聊天记录。 2.支持在群组内 @人发消息,支持消息延后发送,比如说当前的用户不在线,等他上线的时候直接给他 这个通知消息。 3.每拉一个群组这个群组里就默认存在一个机器人,用户可以 @机器人发一些跟系统相关的操作。
由于目前是调研阶段,我用 websocket 写了一个简单的,一个 server,起几个客户端,发消息是没啥问题。但是感觉不咋行,有几个问题。 1.比如说同时间许多人都在拉自己的群组,那这个时候就有很多 socket 长连接会不会影响系统资源消耗? 2.消息的持久化我目前想到的是使用 mongodb,就直接把消息全塞进去。当用户打开这个群聊的时候就取出来给他,有没有更好的解决方案? 3.有没有更加好的技术方案
|  |      1zhengxiaowai      2020-10-27 19:37:19 +08:00  1 你这是一整套 IM,如果你有时间,我能说一天。。 | 
|  |      2euph      2020-10-27 22:40:37 +08:00 有本书叫《 Flask Web 开发实战》,里面有个项目就是在线聊天室 | 
|      3kerro1990      2020-10-27 23:53:56 +08:00 聊天室在这个年代还是很简单的,数据直接 mysql 存储多方便,QQ 都是这样做的 | 
|  |      4xcstream      2020-10-28 00:28:11 +08:00 用 mqtt broker | 
|      5krixaar      2020-10-28 08:22:21 +08:00 遇事不决上 Django channels,官方文档的教程就是写个聊天室🤣 | 
|      6luckyc      2020-10-28 08:38:11 +08:00 用 mqtt 没错了. | 
|  |      7HashV2      2020-10-28 11:30:41 +08:00 tornado 源码 demo 里也有一个 chat 我感觉搞一整套也是挺难的,看能不能找个符合需求的聊天室的库直接用,省事多了 没必要纠结用 python | 
|  |      8johnsona      2020-11-08 00:33:45 +08:00 没必要纠结,用别人的商业 IM SDK 快速无痛 |