我开始研究需要套接字的新Django项目。我搜索了互联网并找到了this和this教程。那里还有很多过时的东西。
任何人都可以推荐使用Django套接字的最佳方法吗?我正在使用Django 1.7。感谢。
答案 0 :(得分:2)
django基本上不支持Websockets,因为django基于不支持websockets的WSGI。我最好的建议是使用tornado这样的东西来处理你需要的websockets。您应该能够访问龙卷风中的所有模型(如果您愿意,也可以使用django模板系统)您将错过django url系统,因为龙卷风有自己的。
您提供的建议也可以,但它们基于Socket.IO,这是javascript。如果你对服务器端的javascript感到满意(你在客户端上没有太多的选择),那么任何一个都可以。如果你想要python,请看看龙卷风。
答案 1 :(得分:2)
嗯,这不是一个简短的话题。
Django阻止框架,因此它不能以异步方式工作。 你需要像http://autobahn.ws这样的东西,它有websocket实现(在twisted或asyncio上运行,它取决于你正在使用的python版本)。
Authobahn将作为外部服务运行,您的客户将连接到它。 如果你需要用django连接它,django可以将事件发布到websocket worker(例如通过HTTP或你喜欢的其他协议),然后websocket worker将你的事件发布给客户。
答案 2 :(得分:2)
我已成功使用gevent-websocket和django与socketio。您必须使用特殊的runserver_socketio - 命令来允许websocket连接。
答案 3 :(得分:2)
请参阅Django Channels项目。
频道是让Django能够处理的不仅仅是一个项目 普通的HTTP请求,包括WebSockets和HTTP2,以及 能够在响应之后运行代码 缩略图或背景计算。