docs: def websocket_safe_read(self):
          """ Returns data if available, otherwise ''. Newlines indicate multiple
              messages
          """
          data = []
          while True:
              try:
                  data.append(self.websocket.recv())
              except (SSLError, SSLWantReadError) as err:
                  if err.errno == 2:
                      # errno 2 occurs when trying to read or write data, but more
                      # data needs to be received on the underlying TCP transport
                      # before the request can be fulfilled.
                      return data
                  raise