使用 Python 和 websocket 创建实时聊天

Posted

技术标签:

【中文标题】使用 Python 和 websocket 创建实时聊天【英文标题】:Creating a real-time chat with Python and websocket 【发布时间】:2015-06-02 18:48:23 【问题描述】:

我正在编写一个嵌入网络应用程序的 python 实时聊天功能。我对实时实现有点困惑。我需要将实时消息推送给不同的用户。

我打算使用 websocket,但我不太确定如何将这些套接字保存到一个数组中,以便一旦用户向服务器发送消息,服务器就可以找到相关的套接字并推送消息。

那么对此有什么想法吗?或者实现实时聊天功能的常用方法是什么?

提前致谢。

【问题讨论】:

【参考方案1】:

您需要使用支持 websocket 的 web 服务器,例如 Tornado 来处理 websocket 流量。要在不同的聊天和用户之间多路复用聊天消息,可以使用 Redis 和 ZeroMQ 等解决方案进行消息多路复用。

但是,听起来您的经验和起点都是零,因此从一个工作示例开始是更好的方法。请研究现有的 Python 实时聊天实现:

https://github.com/heroku-examples/python-websockets-chat

https://github.com/nellessen/Tornado-Redis-Chat

https://github.com/tornadoweb/tornado/blob/master/demos/websocket/chatdemo.py

http://ferretfarmer.net/2013/09/05/tutorial-real-time-chat-with-django-twisted-and-websockets-part-1/

【讨论】:

提醒一下,这个答案已经过时了好几年,现在有新的 Python 异步 Web 服务器更适合这项任务。

以上是关于使用 Python 和 websocket 创建实时聊天的主要内容,如果未能解决你的问题,请参考以下文章

Python Websockets创建pem文件

如何使用 SSL 创建 python websocket 并在其中使用 cookie?

同时使用 Python Tornado 后端、WebSocket 监听器和 MQTT 客户端

使用 Python Twisted 和 Autobahn 从 Matlab 通过 WebSocket 发送 JSON 数据

从python代码连接到Flask websocket [重复]

WebSocket消息推送