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