Отправляю команду на флеш-сервер (файлы). Он отвечает, испуская ответ, в качестве аргумента, dict предоставляется с запрошенными именами файлов.
from socketIO_client import SocketIO, LoggingNamespace, BaseNamespace
def on_data_command_response(*args):
print('on_data_command_response')
print(len(args))
print("-----------")
with SocketIO("192.168.1.164", 5000, LoggingNamespace) as socketIO:
socketIO.on('data command response', on_data_command_response)
socketIO.emit('data event', {'command': 'files'}, on_data_command_response)
socketIO.emit('data event', {'command': 'files'}, on_data_command_response)
socketIO.wait_for_callbacks(seconds=5)
В колбе команда получена как:
@socketio.on('data event')
def data_event(json, methods=['GET', 'POST']):
print('received data command: {}'.format(json))
и ответ отправлен:
def emit_data_command_response(payload_json):
socketio.emit('data command response', payload_json, callback=messageReceived)
Вопрос:
Похоже, что излучение было получено два раза. Один раз с аргументами и один раз без каждой команды, которую я послал.
on_data_command_response
2
-----------
on_data_command_response
0
-----------
on_data_command_response
2
-----------
on_data_command_response
0
-----------
ВАРИАЦИЯ 1:
socketIO.on('data command response', on_data_command_response)
socketIO.emit('data event', {'command': 'files'}, on_data_command_response)
socketIO.emit('data event', {'command': 'files'})
socketIO.emit('data event', {'command': 'files'})
socketIO.emit('data event', {'command': 'files'})
возвращает
on_data_command_response
2
-----------
on_data_command_response
0
-----------
on_data_command_response
2
-----------
on_data_command_response
2
-----------
on_data_command_response
2
-----------
но VARIATION 2 (который мне показался наиболее логичным):
socketIO.on('data command response', on_data_command_response)
socketIO.emit('data event', {'command': 'files'})
on_data_command_response даже не вызывается.
Я не понимаю, что я делаю здесь неправильно. Любая помощь, чтобы получить обратный вызов "on_data_command_response", вызываемый один раз с аргументами?