V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
AllRightReserve
V2EX  ›  Python

使用 Python 开发一套类似聊天室的功能,具体应该怎么搞更好一些

  •  
  •   AllRightReserve · 2020-10-27 18:27:45 +08:00 · 2185 次点击
    这是一个创建于 1489 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们目前有一套系统带的有 web 管理页面,然后现在有一个需求是实现在系统内拉群组聊天的功能。 1.消息需要持久化,用户随时都可能调出来之前的聊天记录。 2.支持在群组内 @人发消息,支持消息延后发送,比如说当前的用户不在线,等他上线的时候直接给他 这个通知消息。 3.每拉一个群组这个群组里就默认存在一个机器人,用户可以 @机器人发一些跟系统相关的操作。

    由于目前是调研阶段,我用 websocket 写了一个简单的,一个 server,起几个客户端,发消息是没啥问题。但是感觉不咋行,有几个问题。 1.比如说同时间许多人都在拉自己的群组,那这个时候就有很多 socket 长连接会不会影响系统资源消耗? 2.消息的持久化我目前想到的是使用 mongodb,就直接把消息全塞进去。当用户打开这个群聊的时候就取出来给他,有没有更好的解决方案? 3.有没有更加好的技术方案

    8 条回复    2020-11-08 00:33:45 +08:00
    zhengxiaowai
        1
    zhengxiaowai  
       2020-10-27 19:37:19 +08:00   ❤️ 1
    你这是一整套 IM,如果你有时间,我能说一天。。
    euph
        2
    euph  
       2020-10-27 22:40:37 +08:00
    有本书叫《 Flask Web 开发实战》,里面有个项目就是在线聊天室
    kerro1990
        3
    kerro1990  
       2020-10-27 23:53:56 +08:00
    聊天室在这个年代还是很简单的,数据直接 mysql 存储多方便,QQ 都是这样做的
    xcstream
        4
    xcstream  
       2020-10-28 00:28:11 +08:00
    用 mqtt broker
    krixaar
        5
    krixaar  
       2020-10-28 08:22:21 +08:00
    遇事不决上 Django channels,官方文档的教程就是写个聊天室🤣
    l4ever
        6
    l4ever  
       2020-10-28 08:38:11 +08:00
    用 mqtt 没错了.
    HashV2
        7
    HashV2  
       2020-10-28 11:30:41 +08:00
    tornado 源码 demo 里也有一个 chat

    我感觉搞一整套也是挺难的,看能不能找个符合需求的聊天室的库直接用,省事多了

    没必要纠结用 python
    johnsona
        8
    johnsona  
       2020-11-08 00:33:45 +08:00
    没必要纠结,用别人的商业 IM SDK 快速无痛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   883 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:41 · PVG 05:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.