python websocket多线程
时间: 2023-07-08 15:47:01 浏览: 42
在 Python 中,可以使用 `websocket` 模块来实现 WebSocket 协议的通信。如果要实现多线程的 WebSocket 通信,可以结合 `threading` 模块来使用。
下面是一个简单的示例代码:
```python
import threading
import websocket
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("WebSocket closed")
def on_open(ws):
def run(*args):
while True:
ws.send("Hello, World!")
time.sleep(1)
threading.Thread(target=run).start()
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()
```
这个示例代码中,我们首先定义了 `on_message`、`on_error`、`on_close` 和 `on_open` 四个回调函数。然后在 `on_open` 回调函数中启动了一个新的线程,用于循环向 WebSocket 服务器发送消息。在这个新的线程中,我们使用了 `time.sleep(1)` 函数来控制发送消息的速度。
最后,我们在主函数中创建了一个 WebSocketApp 实例,并将上述四个回调函数和 `on_open` 回调函数分别传递给了它的构造函数。然后调用 `run_forever` 方法来启动 WebSocket 的循环接收消息和发送消息。