[英]What is the best approach to use Web Sockets with Django projects?
django基本上不支持Websockets,因为django基于不支持websockets的WSGI。 我最好的建议是使用像龙卷风这样的东西,你需要的是websockets。 您应该能够访问龙卷风中的所有模型(如果您愿意,也可以使用django模板系统)您只是会错过django url系统,因为龙卷风有它自己的。
你给出的建议也会起作用,但它们都是基于Socket.IO,这是javascript。 如果你对服务器端的javascript感到满意(你在客户端上没有太多的选择),那么任何一个都可以。 如果你想要python,请看看龙卷风。
嗯,这不是一个简短的话题。
Django是阻塞框架,因此它不能以异步方式工作。 你需要像http://autobahn.ws这样的东西,它有websocket实现(在twisted或asyncio上运行,它取决于你正在使用的python版本)。
Authobahn将作为外部服务运行,您的客户将连接到它。 如果你需要将它与django连接,django可以将事件发布到websocket worker(例如通过HTTP或你喜欢的其他协议),然后websocket worker将你的事件发布给客户端。
我已成功使用gevent-websocket和django与socketio 。 您必须使用特殊的runserver_socketio命令来允许websocket连接。
请参阅Django Channels项目。
Channels是一个项目,使Django能够处理的不仅仅是普通的HTTP请求,包括WebSockets和HTTP2,以及在为缩略图或背景计算等事件发送响应后运行代码的能力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.