多线程下使用websocket-client
时间: 2023-09-13 19:12:58 浏览: 84
在多线程环境下使用websocket-client库可以实现多个线程同时连接和与WebSocket服务器进行通信。下面是一个示例代码,演示了如何在多线程中使用websocket-client库:
```python
import websocket
import threading
import time
def on_message(ws, message):
print(f"Received message: {message}")
def on_error(ws, error):
print(f"Error: {error}")
def on_close(ws):
print("Connection closed")
def on_open(ws):
print("Connection opened")
def run_websocket(url):
websocket.enableTrace(True)
ws = websocket.WebSocketApp(url,
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.on_open = on_open
ws.run_forever()
# 创建多个线程并启动
threads = []
for i in range(5):
thread = threading.Thread(target=run_websocket, args=("wss://example.com/ws",))
thread.start()
threads.append(thread)
# 等待所有线程完成
for thread in threads:
thread.join()
```
在上面的示例中,我们定义了`on_message`、`on_error`、`on_close`和`on_open`等回调函数来处理WebSocket的相关事件。`run_websocket`函数用于创建一个WebSocket连接,并在一个独立的线程中运行。我们创建了5个线程来同时连接WebSocket服务器。
注意,这只是一个简单的示例,并没有处理实际的业务逻辑。你需要根据具体的需求进行修改和扩展。另外,请确保你已经安装了websocket-client库,可以使用`pip install websocket-client`命令进行安装。