Python socket.io клиент терпит неудачу при событии со словарем и списком сообщений

У меня установлен python-socketio==4.3.1, и я могу правильно подключиться к серверу socket.io.

Когда я получаю сообщение, я получаю исключение. Данные, которые я получу, будут представлять собой список событий подключения и словарь событий сообщений.

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.7/site-packages/socketio/client.py", line 581, in _handle_eio_message
    self._handle_event(pkt.namespace, pkt.id, pkt.data)
  File "/usr/local/lib/python3.7/site-packages/socketio/client.py", line 470, in _handle_event
    r = self._trigger_event(data[0], namespace, *data[1:])
  File "/usr/local/lib/python3.7/site-packages/socketio/client.py", line 514, in _trigger_event
    if namespace in self.handlers and event in self.handlers[namespace]:
TypeError: unhashable type: 'list'

Exception in thread Thread-6:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.7/site-packages/socketio/client.py", line 581, in _handle_eio_message
    self._handle_event(pkt.namespace, pkt.id, pkt.data)
  File "/usr/local/lib/python3.7/site-packages/socketio/client.py", line 470, in _handle_event
    r = self._trigger_event(data[0], namespace, *data[1:])
  File "/usr/local/lib/python3.7/site-packages/socketio/client.py", line 514, in _trigger_event
    if namespace in self.handlers and event in self.handlers[namespace]:
TypeError: unhashable type: 'dict'

Я могу правильно регистрировать сообщения с помощью клиента узла. Есть идеи?

Код только сейчас:

import socketio
io = socketio.Client()

@io.event
def connect():
    print('connected')

@io.event
def message(data):
    print(data)

url = '...'
io.connect(url)

1 ответ

Оказывается, ошибка была в реализации сервера.

Другие вопросы по тегам