python 基于websocket.WebSocketApp写一个ws意外断开重连的方法
时间: 2024-02-03 21:01:46 浏览: 310
python-rpc框架,基于ws长连接暴露
可以使用 `websocket.WebSocketApp` 中的 `on_close` 方法,在连接关闭时执行重连操作。
以下是一个示例代码:
```python
import websocket
import time
def on_close(ws):
print("Connection closed. Trying to reconnect...")
while True:
try:
ws.connect()
print("Reconnected successfully!")
break
except:
print("Reconnecting failed. Retrying in 5 seconds...")
time.sleep(5)
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_open(ws):
print("Connection established.")
if __name__ == "__main__":
ws = websocket.WebSocketApp("ws://example.com/ws",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
```
在上述代码中,当连接关闭时,`on_close` 方法会打印出一条消息并尝试重新连接。如果重新连接成功,则会打印出“Reconnected successfully!”的消息并跳出循环。如果重新连接失败,则会打印出“Reconnecting failed. Retrying in 5 seconds…”的消息并等待5秒钟后重新尝试连接。循环会一直执行,直到重新连接成功为止。
阅读全文