Как отловить исключение websocket 502 - PullRequest
0 голосов
/ 07 июля 2019

Я использую сервер и клиент 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
...