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