Tagged Tags:

    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()

示例1:

 

(4)on_message:那些指标在接收到服务器重返的信息时调用。有四个参数,一个是此类本人,三个是大家从服务器获取的字符串(utf-8格式)。

import websocket
from threading import Thread
import time
import sys


class MyApp(websocket.WebSocketApp):
    def on_message(self, message):
        print(message)

    def on_error(self, error):
        print(error)

    def on_close(self):
        print("### closed ###")

    def on_open(self):
        def run(*args):
            for i in range(3):
                # send the message, then wait
                # so thread doesn't exit and socket
                # isn't closed
                self.send("Hello %d" % i)
                time.sleep(1)

            time.sleep(1)
            self.close()
            print("Thread terminating...")

        Thread(target=run).start()


if __name__ == "__main__":
    websocket.enableTrace(True)
    if len(sys.argv) < 2:
        host = "ws://echo.websocket.org/"
    else:
        host = sys.argv[1]
    ws = MyApp(host)
    ws.run_forever()

 

 

 

 

先来看一下,长连接调用情势:

——

 

亚搏app官方网站,短连接:

 

 

www.yabovip4.com,安装

(2)header:
客户发送websocket握手诉求的伸手头,{‘head1:value1′,’head2:value2’}。

 

 

大家看源代码,会发掘那样一断代码:

(11)subprotocols:一组可用的子协议,默以为空。

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()

ping的晚点时间,要大于ping间隔时间

pip install websocket-client

长连接调用方式。ping_interval:自动发送“ping”命令,每一个内定的流年(秒),如若设置为0,则不会自动发送。

 假诺持续按钮闭websocket连接,会一直不通下去。别的这几个函数带四个参数,借使传的话,运行心跳包发送。

(9)keep_running:贰个二进制的标记位,假诺为True,那么些app的主循环将不唯有运作,私下认可值为True。

长连接调用方式。(3)on_长连接调用方式。open:在确立Websocket握手时调用的可调用对象,这几个艺术唯有三个参数,正是此类本人。

(10)get_mask_key:用于产生四个掩码。

长连接:

        if not ping_timeout or ping_timeout <= 0:
            ping_timeout = None
        if ping_timeout and ping_interval and ping_interval <= ping_timeout:
            raise WebSocketException("Ensure ping_interval > ping_timeout")

 

长连接调用方式。(6)on_close:在遭逢一而再关闭的情事时调用,参数唯有贰个,正是此类本人。

ping_timeout:若无抽出pong新闻,则为超时(秒)。

 

长连接首要办法:ws.run_forever(ping_interval=60,ping_timeout=5)

 

ws.run_forever(ping_interval=60,ping_timeout=5)

#ping_interval心跳发送间隔时间

#ping_timeout 设置,发送ping到收到pong的超时时间

(5)on_error:那么些指标在遭遇错误时调用,有七个参数,第二个是此类本人,第一个是不行对象。

(1)url:
websocket的地址。

 

import websocket
try:
    import thread
except ImportError:
    import _thread as 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):
        ws.send("hello1")
        time.sleep(1)
        ws.close()
    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(ping_interval=60,ping_timeout=5)

 

(8)on_data:当从服务器收到到音信时被调用,有多少个参数,分别是:该类本人,接收到的字符串(utf-8),数据类型,三回九转标记。

python
websocket

示例2:

 长连接,参数介绍:

(7)on_cont_message:这些目的在收到到接二连三帧数据时被调用,有多少个参数,分别是:类自个儿,从服务器接受的字符串(utf-8),延续标记。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注