weilai911 发表于 2021-7-13 08:56

python websocket例子

import websocket
from threading import Thread
import time
import sys

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):
      # send the message, then wait
      # so thread doesn't exit and socket
      # isn't closed
      ws.send("Hello %d" % i)
      time.sleep(1)

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

Thread(target=run).start()


if __name__ == "__main__":

websocket.enableTrace(True)
host = "ws://echo.websocket.org/"
ws = websocket.WebSocketApp(host,
                on_message=on_message,
                on_error=on_error,
                on_close=on_close)
ws.on_open = on_open
ws.run_forever()


这段代码例子里 没有print send为什么还会打印出来 请问如何去掉

andy_wang425 发表于 2021-7-13 09:23

把你代码里的
websocket.enableTrace(True)
改成
websocket.enableTrace(False)
即可

weilai911 发表于 2021-7-13 09:41

andy_wang425 发表于 2021-7-13 09:23
把你代码里的

改成


感谢大哥{:1_893:}

weilai911 发表于 2021-7-13 09:58

andy_wang425 发表于 2021-7-13 09:23
把你代码里的

改成


大哥 这个改成断线重连应该怎么写

andy_wang425 发表于 2021-7-14 15:40

weilai911 发表于 2021-7-13 09:58
大哥 这个改成断线重连应该怎么写

改一下你的on_close函数就行,比如这样改

def on_close(ws):
print("### closed, reconnecting... ###")
ws.run_forever()

weilai911 发表于 2021-7-15 13:14

本帖最后由 weilai911 于 2021-7-15 14:00 编辑

andy_wang425 发表于 2021-7-14 15:40
改一下你的on_close函数就行,比如这样改

def on_close(ws):

这样改会报错
远程主机强迫关闭了一个现有的连接。
### closed ###

error from callback <function on_close at 0x0000024C3C587A60>: socket is already opened
页: [1]
查看完整版本: python websocket例子