用python模拟websocket请求,报错
async def refund_run_data(self,pnr,uri='wss://endpoint-v4-chatbot.vueling.com/socket.io/?EIO=3&transport=websocket',proxies_type=None):
"""
"""
sessionId = str(uuid.uuid1())
async with AioWebSocket(uri) as aws:
converse = aws.manipulator # 初始化 aiowebsocket 库的连接类
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","channel":"webchat-client","data":{"culture":"en-GB","helpCenterFlow":"RefundAirportTaxes","type":null,"subType":null,"clientTarget":null},"passthroughIP":null,"reloadFlow":false,"resetContext":false,"resetFlow":false,"resetState":false,"sessionId":"session-' + sessionId + '","source":"device","text":"GET_STARTED","userId":"27bca16b-15f4-4827-96b4-ec27e559aee7"}]')
self.logger.info(f"发送了消息: {mes}")
# 会话开始
for i in range(13):
await converse.receive()
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","channel":"webchat-client","data":{"culture":"en-GB","helpCenterFlow":"RefundAirportTaxes","type":null,"subType":null,"clientTarget":null},"passthroughIP":null,"reloadFlow":false,"resetContext":false,"resetFlow":false,"resetState":false,"sessionId":"session-' + sessionId + '","source":"device","text":"email","userId":"27bca16b-15f4-4827-96b4-ec27e559aee7"}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(6):
await converse.receive()
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","channel":"webchat-client","data":{"culture":"en-GB","helpCenterFlow":"RefundAirportTaxes","type":null,"subType":null,"clientTarget":null},"passthroughIP":null,"reloadFlow":false,"resetContext":false,"resetFlow":false,"resetState":false,"sessionId":"session-' + sessionId + '","source":"device","text":"' + str(pnr) + '",''"userId":"27bca16b-15f4-4827-96b4-ec27e559aee7"}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(6):
mes = await converse.receive()
print(mes)
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","channel":"webchat-client","data":{"culture":"en-GB","helpCenterFlow":"RefundAirportTaxes","type":null,"subType":null,"clientTarget":null},"passthroughIP":null,"reloadFlow":false,"resetContext":false,"resetFlow":false,"resetState":false,"sessionId":"session-' + sessionId + '","source":"device","text":"nevergiveup17apr05@qq.com","userId":"27bca16b-15f4-4827-96b4-ec27e559aee7"}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(8):
mes = await converse.receive()
mes_str = mes.decode('utf-8')
if 'value' in mes_str:
value_list = re.findall('.*?"value":"(.*?)".*?', mes_str,re.S)
global value_str
value_str = ','.join(value_list)
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","channel":"webchat-client","data":{"adaptivecards": {"selectedPassengers": "' + value_str + '"}},"passthroughIP":null,"reloadFlow":false,"resetContext":false,"resetFlow":false,"resetState":false,"sessionId":"session-' + sessionId + '","source":"device","text":"","userId":"27bca16b-15f4-4827-96b4-ec27e559aee7"}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(12):
await converse.receive()
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","channel":"webchat-client","data":{"culture":"en-GB","helpCenterFlow":"RefundAirportTaxes","type":null,"subType":null,"clientTarget":null},"passthroughIP":null,"reloadFlow":false,"resetContext":false,"resetFlow":false,"resetState":false,"sessionId":"session-' + sessionId + '","source":"device","text":"nevergiveup17apr05@qq.com",''"userId":"27bca16b-15f4-4827-96b4-ec27e559aee7"}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(3):
await converse.receive()
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","userId": "27bca16b-15f4-4827-96b4-ec27e559aee7","sessionId": "session-' + sessionId + '","channel": "webchat-client","source": "device","passthroughIP": null,"reloadFlow": false,"resetFlow": false,"resetState": false,"resetContext": false,"text": "","data": {"adaptivecards": {"phonePrefix": "+86","phone": "18611715578"}}}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(11):
mes = await converse.receive()
mes_str = mes.decode('utf-8')
if 'reference' in mes_str:
describe = re.findall('.*?reference (.*?). If .*?', mes_str, re.S)[0]
self.logger.info(f"返回的个案号: {describe}")
return describe
else:
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","channel":"webchat-client","data":{"culture":"en-GB","helpCenterFlow":"RefundAirportTaxes","type":null,"subType":null,"clientTarget":null},"passthroughIP":null,"reloadFlow":false,"resetContext":false,"resetFlow":false,"resetState":false,"sessionId":"session-' + sessionId + '","source":"device","text":"nevergiveup17apr05@qq.com",''"userId":"27bca16b-15f4-4827-96b4-ec27e559aee7"}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(3):
await converse.receive()
await converse.send('2')
mes = await converse.send('42["processInput",{"URLToken":"cba92de4473675f50885b02f529f57aa0bb5bd878e9e0d65a4c4a19b62feabcd","userId": "27bca16b-15f4-4827-96b4-ec27e559aee7","sessionId": "session-' + sessionId + '","channel": "webchat-client","source": "device","passthroughIP": null,"reloadFlow": false,"resetFlow": false,"resetState": false,"resetContext": false,"text": "","data": {"adaptivecards": {"phonePrefix": "+86","phone": "18611715578"}}}]')
self.logger.info(f"发送了消息: {mes}")
#
for i in range(15):
mes = await converse.receive()
mes_str = mes.decode('utf-8')
if 'reference' in mes_str:
describe = re.findall('.*?reference (.*?). If .*?', mes_str,re.S)[0]
self.logger.info(f"返回的个案号: {describe}")
return describe
raise exceptions.IncompleteReadError(incomplete, n)
asyncio.exceptions.IncompleteReadError: 0 bytes read on a total of 2 expected bytes
但是这个报错是偶尔会出现,想知道为什么出现以及怎么解决