如何使用pythonwebsockets使我的心跳接收器保持活动状态
虽然我可以从服务器接收心跳信号,但我的代码在运行30秒后无法继续接收信息 我已经搜索了websockets常见问题,一些乒乓球通讯,但我仍然不知道为什么会出现这个错误如何使用pythonwebsockets使我的心跳接收器保持活动状态,python,websocket,client,heartbeat,Python,Websocket,Client,Heartbeat,虽然我可以从服务器接收心跳信号,但我的代码在运行30秒后无法继续接收信息 我已经搜索了websockets常见问题,一些乒乓球通讯,但我仍然不知道为什么会出现这个错误 async with websockets.client.connect(uri,close_timeout = None) as ws: await ws.send(data) print(data) result = await ws.recv() #print(result) resu
async with websockets.client.connect(uri,close_timeout = None) as ws:
await ws.send(data)
print(data)
result = await ws.recv()
#print(result)
resultdict = json.loads(result)
keydict = resultdict["Key"]
mainkey = json.dumps(keydict)
#mainkey = mainkey.replace('-','')
mainkey = mainkey.replace('"','')
print('原始Key = ',mainkey)
while True:
hb = await ws.recv()
print(hb)
我得到了这个输出
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:12.64', 'AreaList': None}
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:17.65', 'AreaList': None}
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:22.67', 'AreaList': None}
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:27.67', 'AreaList': None}
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:32.69', 'AreaList': None}
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:37.70', 'AreaList': None}
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:42.72', 'AreaList': None}
{'CMD': 'HeartBeat', 'TYPE': None, 'SendTime': '2019-09-10T03:39:47.73', 'AreaList': None}
仅收到7条消息,我的代码仍在运行,但消息未被打印,最终崩溃。您可能应该使用以下内容:
ws=websocket.WebSocketApp(uri,on_message=on_message,on_error=on_error,on_close=on_close)
ws.on_open=self.on_open
ws.run_forever()
def on_消息(消息):
打印(信息)
def on_错误(错误):
打印(错误)
def on_close():
打印(“已关闭”)
def on_open(自动)打开:
ws=self.ws
p='您需要的任何类型的开口'
p_load=json.load(p)
p_json=json.dumps(p_加载)
ws.send(p_json)
您可能应该使用如下内容:
ws=websocket.WebSocketApp(uri,on_message=on_message,on_error=on_error,on_close=on_close)
ws.on_open=self.on_open
ws.run_forever()
def on_消息(消息):
打印(信息)
def on_错误(错误):
打印(错误)
def on_close():
打印(“已关闭”)
def on_open(自动)打开:
ws=self.ws
p='您需要的任何类型的开口'
p_load=json.load(p)
p_json=json.dumps(p_加载)
ws.send(p_json)