Я использую сервер и клиент Python Socket.IO и клиент websocket для python , чтобы создать туннель от моего Raspberry Pi до моего сервера на AWS.
Мой туннель работает отлично, кроме случаев, когда сервер отключается из-за ошибки.Когда это происходит, это исключение, которое я получаю на своем Raspberry Pi.
Я хотел бы перехватить исключение thsocket2is и выполнить некоторые действия, когда оно происходит, но я до сих пор не смог его отловить.
Я попробовал следующее, но безуспешно:
- добавить методы on_error и on_close в websocket.WebSocketApp ()
- Surround Websocket.WebSocketApp.run_forever ()с try-catch
- объемное socketio.Client.connect () с try-catch
- проверка для socketio.Client.connect () возвращаемое значение
Мое исключение:
Exception in thread Thread-6:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/home/pi/.local/lib/python3.5/site-packages/socketio/client.py", line 439, in _handle_reconnect
socketio_path=self.socketio_path)
File "/home/pi/.local/lib/python3.5/site-packages/socketio/client.py", line 208, in connect
engineio_path=socketio_path)
File "/home/pi/.local/lib/python3.5/site-packages/engineio/client.py", line 166, in connect
url, headers, engineio_path)
File "/home/pi/.local/lib/python3.5/site-packages/engineio/client.py", line 303, in _connect_polling
if self._connect_websocket(url, headers, engineio_path):
File "/home/pi/.local/lib/python3.5/site-packages/engineio/client.py", line 333, in _connect_websocket
websocket_url + self._get_url_timestamp(), header=headers)
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_core.py", line 511, in create_connection
websock.connect(url, **options)
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_core.py", line 223, in connect
self.handshake_response = handshake(self.sock, *addrs, **options)
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_handshake.py", line 79, in handshake
status, resp = _get_resp_headers(sock)
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_handshake.py", line 152, in _get_resp_headers
raise WebSocketBadStatusException("Handshake status %d %s", status, status_message)
websocket._exceptions.WebSocketBadStatusException: Handshake status 502 Bad Gateway