Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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
Django 如何为多个Web套接字提供服务_Django_Websocket - Fatal编程技术网

Django 如何为多个Web套接字提供服务

Django 如何为多个Web套接字提供服务,django,websocket,Django,Websocket,我有30个智能传感器,分布在几个可接入互联网的专用网络中(全部)。我必须在这些传感器和具有公共IP的服务器之间建立持久连接(套接字) 用户可以通过网站(Django)访问每个传感器并发送或获取数据 从您的角度来看,我如何确保几个持久和私有连接?我找到了,但我认为它不适合我的应用程序,因为我无法从其他Django视图恢复现有的套接字连接 任何建议都很受欢迎。 我发现在服务器中使用Twisted Perspective Broker和JSON-RPC是一种很好的方法,它提供了支持每个智能传感器的方法

我有30个智能传感器,分布在几个可接入互联网的专用网络中(全部)。我必须在这些传感器和具有公共IP的服务器之间建立持久连接(套接字)

用户可以通过网站(Django)访问每个传感器并发送或获取数据

从您的角度来看,我如何确保几个持久和私有连接?我找到了,但我认为它不适合我的应用程序,因为我无法从其他Django视图恢复现有的套接字连接

任何建议都很受欢迎。 我发现在服务器中使用Twisted Perspective Broker和JSON-RPC是一种很好的方法,它提供了支持每个智能传感器的方法,而对于另一方,每个传感器将使用JSON库进行身份验证(基本)和发送数据


你觉得怎么样?这是一个好的解决方案吗?我将在测试后立即发布结果。

设置一个单独的服务器来保持持久连接,并允许django应用程序查询它。Twisted可以为编写简单的单用途服务器提供一个很好的框架,并且有一个关于如何编写XML-RPC服务器的好教程。Python对XML-RPC有很好的支持,应该很容易启动并运行它。

设置一个单独的服务器来保持持久连接,并允许django应用程序查询它。Twisted可以为编写简单的单用途服务器提供一个很好的框架,并且有一个关于如何编写XML-RPC服务器的好教程。Python对XML-RPC有很好的支持,应该可以很容易地启动和运行它。

谢谢你的建议,我会看一看这是非常有用的,但对于这个porpuse,beacse xmlrpm只能从执行linux box、Python和twisted模块的客户端执行远程方法,在这种情况下,每个智能电表只能请求URL或打开一个简单的插座。我发现的困难是,有一个已连接到服务器的侦听器列表,处理从每个套接字流到服务器的信息,并将其与django服务器中的已知实体关联,并保存新的传入数据。此外,我了解到Twisted是单线程的,当然这可能会导致阻塞如果多个传感器同时向服务器发送数据,或者您可以使用单独的线程来控制数据,并使用主线程来运行Twisted服务器,则整个服务器将停止。使用twisted进行多线程处理比使用django这样的复杂框架容易得多。或者,您可以只运行套接字而不阻塞…我将研究twisted,如果我实现一个JSON-RPC服务器,它似乎会很有用,这样我可以从每个智能传感器构造JSON/javascript mime请求,并使用服务器中的某些方法(基于twisted)以适当的方式处理数据。但我仍在寻找一种可扩展的方式,将数据(如私人消息)从服务器发送到智能仪表(套接字处理?)谢谢你的建议我会给它看一看这非常有用,但不适用于此端口,beacse xmlrpm只能从执行linux box、python和twisted模块的客户端执行远程方法,在这种情况下,每个智能电表只能请求URL或打开一个简单的套接字。我发现的困难是,有一个已连接到服务器的侦听器列表,处理从每个套接字流到服务器的信息,并将其与django服务器中的已知实体关联,并保存新的传入数据。此外,我了解到Twisted是单线程的,当然这可能会导致阻塞如果多个传感器同时向服务器发送数据,或者您可以使用单独的线程来控制数据,并使用主线程来运行Twisted服务器,则整个服务器将停止。使用twisted进行多线程处理比使用django这样的复杂框架容易得多。或者,您可以只运行套接字而不阻塞…我将研究twisted,如果我实现一个JSON-RPC服务器,它似乎会很有用,这样我可以从每个智能传感器构造JSON/javascript mime请求,并使用服务器中的某些方法(基于twisted)以适当的方式处理数据。但我仍在寻找一种可扩展的方式,将数据(如私人消息)从服务器发送到智能电表(套接字处理?)