⽤python实现websocket请求遇到的问题及解决⽅法。
想要实现python的ws库功能,实时获取对⽅服务器ws协议返回的数据,查了下百度,⽤如下流程:
ws = create_connection("wss://ws.xxxxxxx.info/inv")
ws.send(str({"op":"unconfirmed_sub"}))
前端websocket怎么用print("")
result = ws.recv()
print(str(result))
看⽂档需要发送⼀个指令,⽤ str({"op":"unconfirmed_sub"}),发现⽆回显。经过⼤⽜提⽰,不能⽤str⽅法,⽤json.dumps()⽅法。加载json库 import json
ws = create_connection("wss://ws.xxxxxxx.info/inv")
ws.send(json.dumps({"op":"unconfirmed_sub"}))
print("")
result = ws.recv()
print(str(result))
ok,收到单条消息。假如要循环接受呢?简单
while(1):
result = ws.recv()
print(str(result))
但是,运⾏⼀段时间出现 连接中断,需要重连,重连后漏掉许多数据,很是烦恼。⽹上查没有明确的解决⽅式,试着竟然到⼀个解决⽅式。
ws = websocket.WebSocketApp(
"wss://ws.xxxxxx.info/inv",
on_message = on_message,
on_error = on_error,
on_close = on_close
)
<_open = on_open
ws.run_forever()
python的仿js websocket写法⽅式,重新写了⼀遍脚本,流畅接受消息,⾃动重连发送指令,连接时间明显减少,基本做到⽆遗漏数据,与⽹站js的ws连接实现⼀样。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论