Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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 使用autobahn WebSocket尽可能快地推送数据_Python_Websocket_Autobahn - Fatal编程技术网

Python 使用autobahn WebSocket尽可能快地推送数据

Python 使用autobahn WebSocket尽可能快地推送数据,python,websocket,autobahn,Python,Websocket,Autobahn,我正在尝试使用autobahn编写一个websockets应用程序,以尽可能快地将数据从客户端推送到服务器。由于客户端和服务器都在本地主机上,我应该可以获得非常高的吞吐量(本地python吞吐量测试给出的吞吐量大于1 Gbps),但是,通过WebSocket我可以获得的最好吞吐量是40Mbps 我刚刚修改了autobahn echo客户端示例中的客户端代码 这是我的代码(self.message是一个100kB长的字符串,MAXDUR是5秒——我已经更改了这两个字符串,但都没有成功): 我已尝试

我正在尝试使用autobahn编写一个websockets应用程序,以尽可能快地将数据从客户端推送到服务器。由于客户端和服务器都在本地主机上,我应该可以获得非常高的吞吐量(本地python吞吐量测试给出的吞吐量大于1 Gbps),但是,通过WebSocket我可以获得的最好吞吐量是40Mbps

我刚刚修改了autobahn echo客户端示例中的客户端代码

这是我的代码(self.message是一个100kB长的字符串,MAXDUR是5秒——我已经更改了这两个字符串,但都没有成功):

我已尝试使用sendMessageFrameData将消息作为长帧发送,并使用sync=True和不使用sync=True。我能得到的最快速度是40Mbps


我是否达到了websocket的极限?如果没有,我做错了什么?

两端的CPU使用率是多少?这可能是CPU瓶颈。你好,Emile,谢谢你的回复。客户机和服务器都在本地主机上,占据了一个核心的40-60%(它是一个四核)。它不可能是CPU,因为我可以轻松地通过使用纯套接字的本机python服务器/客户端推送100倍。
     def sendData():
        self.sendMessage(self.message,sync=True)
        self.totbytes += len(self.message)
        if duration > MAXDUR:
          self.factory.reactor.callLater(0, end)
          return
        self.factory.reactor.callLater(0, sendData)