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