zoukankan      html  css  js  c++  java
  • python websocket-client connection

    参考:https://pypi.python.org/pypi/websocket-client/    https://www.cnblogs.com/saryli/p/6702260.html

    import websocket
    import thread
    import time
     
    def on_message(ws, message):
        print message
     
    def on_error(ws, error):
        print error
     
    def on_close(ws):
        print "### closed ###"
     
    def on_open(ws):
        def run(*args):
            for i in range(3):
                time.sleep(1)
                ws.send("Hello %d" % i)
            time.sleep(1)
            ws.close()
            print "thread terminating..."
        thread.start_new_thread(run, ())
     
     
    if __name__ == "__main__":
        websocket.enableTrace(True)
        ws = websocket.WebSocketApp("ws://echo.websocket.org/",
                                  on_message = on_message,
                                  on_error = on_error,
                                  on_close = on_close)
        ws.on_open = on_open
        ws.run_forever()

    Short-lived one-off send-receive

    This is if you want to communicate a short message and disconnect immediately when done.

    from websocket import create_connection
    ws = create_connection("ws://echo.websocket.org/")
    print "Sending 'Hello, World'..."
    ws.send("Hello, World")
    print "Sent"
    print "Receiving..."
    result =  ws.recv()
    print "Received '%s'" % result
    ws.close()

    If you want to customize socket options, set sockopt.

    sockopt example

    from websocket import create_connection
    ws = create_connection("ws://echo.websocket.org/",
                            sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),))

    More advanced: Custom class

    You can also write your own class for the connection, if you want to handle the nitty-gritty details yourself.

    from websocket import create_connection, WebSocket
    class MyWebSocket(WebSocket):
        def recv_frame(self):
            frame = super().recv_frame()
            print('yay! I got this frame: ', frame)
            return frame
     
    ws = create_connection("ws://echo.websocket.org/",
                            sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),), class_=MyWebSocket)

    FAQ

    How to disable ssl cert verification?

    Please set sslopt to {“cert_reqs”: ssl.CERT_NONE}.

    WebSocketApp sample

    ws = websocket.WebSocketApp("wss://echo.websocket.org")
    ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
    

    create_connection sample

    ws = websocket.create_connection("wss://echo.websocket.org",
      sslopt={"cert_reqs": ssl.CERT_NONE})
    

    WebSocket sample

    ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE})
    ws.connect("wss://echo.websocket.org")
    

    How to disable hostname verification.

    Please set sslopt to {“check_hostname”: False}. (since v0.18.0)

    WebSocketApp sample

    ws = websocket.WebSocketApp("wss://echo.websocket.org")
    ws.run_forever(sslopt={"check_hostname": False})
    

    create_connection sample

    ws = websocket.create_connection("wss://echo.websocket.org",
      sslopt={"check_hostname": False})
    

    WebSocket sample

    ws = websocket.WebSocket(sslopt={"check_hostname": False})
    ws.connect("wss://echo.websocket.org")
    

    How to enable SNI?

    SNI support is available for Python 2.7.9+ and 3.2+. It will be enabled automatically whenever possible.

    Sub Protocols.

    The server needs to support sub protocols, please set the subprotocol like this.

    Subprotocol sample

    ws = websocket.create_connection("ws://exapmle.com/websocket", subprotocols=["binary", "base64"])
    

    wsdump.py

    wsdump.py is simple WebSocket test(debug) tool.

    sample for echo.websocket.org:

    $ wsdump.py ws://echo.websocket.org/
    Press Ctrl+C to quit
    > Hello, WebSocket
    < Hello, WebSocket
    > How are you?
    < How are you?
    

    Usage

    usage:

    wsdump.py [-h] [-v [VERBOSE]] ws_url
    

    WebSocket Simple Dump Tool

    positional arguments:
    ws_url websocket url. ex. ws://echo.websocket.org/
    optional arguments:
    -h, --help show this help message and exit
    WebSocketApp
    -v VERBOSE--verbose VERBOSE

    如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击下方的【好文要顶】按钮【精神支持】,因为这两种支持都是使我继续写作、分享的最大动力!

  • 相关阅读:
    Python 通过最低位判断数字是偶数还是奇数
    C语言 windows下Ansi和UTF-8编码格式的转换
    C语言 Ubuntu系统 UTF-8 文字处理
    C语言 使用char字符实现汉字处理
    C# GUI应用 实现 2048游戏
    Docker部署Minio
    Ubuntu18.04开启root
    Ubuntu18.04安装Docker
    docker安装mysql
    idea启动项目端口被占用
  • 原文地址:https://www.cnblogs.com/kex1n/p/8197112.html
Copyright © 2011-2022 走看看