Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django项目中使用Web套接字的最佳方法是什么?_Python_Django_Node.js_Sockets_Socket.io - Fatal编程技术网

Python 在Django项目中使用Web套接字的最佳方法是什么?

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套接字的最佳方法吗?我正在使用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。这是你正在做的事情吗?如果是的话,你认为这将在什么时候完成?这是德扬戈核心团队之一安德鲁·戈德温的作品。