Django应用的WebSocket服务器

9

我有一个Django应用程序需要在Apache HTTP服务器下部署,同时我需要实时推送事件到客户端的Web浏览器。

我对Python不太熟悉,有人可以建议一些可以在Python+Django+Apache中使用的websocket服务器吗?

2个回答

10

Django是一个同步的Web服务器。这意味着您不能直接使用WebSocket。但是,您有多种选项可以在Django中使用WebSocket。

使用完整的Python堆栈来实现:使用Tornado和Django。您可以按照这个post进行操作。

使用Node.js+Socket.IO+消息代理:按照这种tutorial进行操作。

与使用Tornado相比,您会发现有更多的资源可以帮助您使用Node.js和Socket.IO实现WebSocket。


第二个选项会增加您的 Web 堆栈复杂性:这意味着除了 Python,您还必须处理 JavaScript 语言。此外,您将使用消息代理(Redis)。这取决于您的需求。如果您更喜欢 Python,请选择 Tornado。Tornado 可以毫无问题地运行 Django 服务器。请参见此链接 - Alex Grs
谢谢Alex,我现在会尝试第一种选择。我知道socket.io应该比Tornado表现更好,这是真的吗?将来我也会尝试第二个选项。 - Simon Wang
好的。我唯一可以告诉你的是,socket.io在所有浏览器中都得到了很好的支持。 ;) - Alex Grs
我该如何知道Tornado支持哪些浏览器(版本)?顺便说一句,我的Django应用程序需要在Apache下部署,这会与Tornado冲突吗? - Simon Wang
我使用了node+socket.io+redis,现在似乎可以工作了:) 谢谢~ - Simon Wang
显示剩余3条评论

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接