Есть ли хороший стандартный способ симуляции Req / Res через Websocket? - PullRequest
0 голосов
/ 02 ноября 2018

Я создаю свое приложение полностью через websocket. Хотя я вижу выгоду от возможности отправлять данные клиенту без необходимости запрашивать данные у меня. Для взаимодействия типа req / res все еще есть преимущества, поскольку вы можете объединить всю логику.

Пример:

Пройдите регистрацию. Вы отправляете данные, сервер отправляет OK или ERROR, если что-то не так. Вот три события! DataFromClient, RegistrationFailed, RegistrationSuccess. Но с помощью REST я мог бы сделать один запрос POST и обработать его в одной функции.

Не должно быть слишком сложно создать библиотеку, которая позволяет вам толкать уведомления + Req / Res тип взаимодействия. Было бы еще лучше, если бы маршруты могли быть определены как экспресс-маршруты.

1 Ответ

0 голосов
/ 02 ноября 2018

Не существует «стандартного» способа реализовать запрос / ответ с помощью webSocket. Это не является частью стандарта webSocket. Это, конечно, можно сделать (подробнее об этом ниже), но не существует «стандартного» способа сделать это.

Библиотека socket.io, созданная поверх webSocket, имеет опцию ответа, встроенную в любое отправляемое сообщение.

Отправитель делает что-то вроде этого:

socket.emit("msgName", someData, function(data) {
    // data is the "response" to sending this message
    console.log(data);
});

Получатель сообщения, ожидающего ответа, делает что-то подобное, чтобы вызвать отправку ответа:

socket.on("msgName", (someData, fn) => {
   // send response
   fn(someOtherData);
});

Вы можете реализовать свою собственную схему ответа в webSocket. Вам нужно будет добавить в свой формат данных уникальный идентификатор для каждого запроса, чтобы вы могли отправить тот же уникальный идентификатор обратно в ответ, чтобы получатель знал, какой ответ принадлежит какому запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...