• 用python实现websocket请求遇到的问题及解决方法。


    想要实现python的ws库功能,实时获取对方服务器ws协议返回的数据,查了下百度,用如下流程:

        ws = create_connection("wss://ws.xxxxxxx.info/inv")
        ws.send(str({"op":"unconfirmed_sub"}))
        print("Receiving...")
        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("Receiving...")
    result =  ws.recv()
    print(str(result))
    

     ok,收到单条消息。假如要循环接受呢?简单

    while(1):
        result = ws.recv()
        print(str(result))
    

    但是,运行一段时间出现 连接中断,需要重连,重连后漏掉许多数据,很是烦恼。网上查找没有明确的解决方式,试着竟然找到一个解决方式。

    websocket.enableTrace(True)
    ws = websocket.WebSocketApp(
            "wss://ws.xxxxxx.info/inv",
            on_message = on_message,
            on_error = on_error,
            on_close = on_close
        )
    ws.on_open = on_open
    ws.run_forever()
    

     python的仿js  websocket写法方式,重新写了一遍脚本,流畅接受消息,自动重连发送指令,连接时间明显减少,基本做到无遗漏数据,与网站js的ws连接实现一样。

  • 相关阅读:
    函数方法与面向对象
    seleniums私房菜系列一 ---- selenium简介
    MySQL图形化管理工具
    存储引擎
    mysql自定义函数
    加密函数
    mysql聚合函数
    mysql信息函数
    mysql日期时间函数(常用的)
    mysql比较运算符和函数
  • 原文地址:https://www.cnblogs.com/elliottc/p/8823975.html
Copyright © 2020-2023  润新知