Python 在Django项目中使用Web套接字的最佳方法是什么?
我正在着手一个新的Django项目,它需要套接字。我在网上搜索了一下,找到了一本书和教程。还有很多过时的东西。Python 在Django项目中使用Web套接字的最佳方法是什么?,python,django,node.js,sockets,socket.io,Python,Django,Node.js,Sockets,Socket.io,我正在着手一个新的Django项目,它需要套接字。我在网上搜索了一下,找到了一本书和教程。还有很多过时的东西。 有人能推荐使用Django套接字的最佳方法吗?我正在使用Django 1.7。谢谢。django基本上不支持WebSocket,因为django基于不支持WebSocket的WSGI。我最好的建议是在需要WebSocket的地方使用类似的东西。您应该能够访问tornado中的所有模型(如果您愿意,也可以使用django模板系统),因为tornado有自己的url系统,所以您将错过dja
有人能推荐使用Django套接字的最佳方法吗?我正在使用Django 1.7。谢谢。django基本上不支持WebSocket,因为django基于不支持WebSocket的WSGI。我最好的建议是在需要WebSocket的地方使用类似的东西。您应该能够访问tornado中的所有模型(如果您愿意,也可以使用django模板系统),因为tornado有自己的url系统,所以您将错过django url系统
您给出的建议也会起作用,但它们基于Socket.IO,即javascript。如果您对服务器端的javascript感到满意(您在客户端没有太多选择),那么任何一个都可以。如果您想要python,请看一下tornado。好吧,这不是一个简短的主题 Django是一个阻塞框架,所以它不能以异步方式工作。 您需要类似的东西,它有websocket实现(在twisted或asyncio上运行,这取决于您使用的python版本) Authobahn将作为外部服务运行,您的客户端将连接到它。
如果您需要将其与django连接,django可以将事件发布到websocket worker(例如,通过HTTP或您喜欢的其他协议),然后websocket worker将向客户端发布您的事件。我已成功地将gevent websocket和django与一起使用。您必须使用special-命令才能允许websocket连接。请参阅项目 Channels是一个让Django能够处理不仅仅是 普通HTTP请求,包括WebSocket和HTTP2,以及 能够在发送响应后运行代码,例如 缩略图或背景计算
你是说websocket还是什么?下面是即将到来的工作,它将为django提供websocket的本地支持,但它还没有完成。哦,谢谢@kmmbvnr。这是你正在做的事情吗?如果是的话,你认为这将在什么时候完成?这是德扬戈核心团队之一安德鲁·戈德温的作品。