Есть немного чужого кода, к которому я пытаюсь добавить функциональность.Он использует веб-сокеты для связи с сервером, который я, скорее всего, не смогу изменить (сервер работает на 3-долларовом микроконтроллере ...)
Шаблон, используемый, например, при загрузке данных вserver, состоит в том, чтобы использовать глобальные переменные, затем посылать серию сообщений в сокет, а также иметь «onmessage», который будет обрабатывать ответ.Это кажется неуклюжим, учитывая, что предполагается, что за один раз выполняется только один вызов сокета (я думаю, что сервер гарантирует это на самом деле).Сообщения, отправляемые сервером, могут быть множественными, и даже выяснить, когда сообщения закончены, - это просто.
Я думаю о том, чтобы сделать вещи так, чтобы я мог лучше разбираться в вещах, в основном не имея возможности знатькогда ответ получен (и закончен), переход к шаблонам типа
function save_file(name, data, callback) {
}
И, возможно, в какой-то момент я даже смогу превратить их в асинхронные функции.
Итак, пара идей:какой-то идентификатор, который я мог бы найти в объекте websocket, который позволил бы мне лучше связать воедино запрос и ответ?- если не считать, что является правильным шаблоном?Я начал использовать пользовательские события, которые позволяют мне намного лучше связать весь процесс, где я могу предоставить обратный вызов, прикрепив его к событию, но даже выполнение removeEventListener сложно, потому что мне нужно сохранять ссылку на каждый отдельный слушатель, чтобы убедиться, что яможете удалить их позже.
Любой совет кто-нибудь?