kirillbelash93
@kirillbelash93
Сертифицированный сыч

Поясните по сокетам?

Здравствуйте, товарищи. Делаю чат на сокетах, сервер на ноде. И вот возникла потребность сделать список онлайна. Задача вот в чем, когда я подключаюсь я запрашиваю из БД список сообщений, отправляя серверу команду X, в ответ получаю данные, но как мне при этом отсылать серверу команду Y чтобы одновременно с этим получить список онлайна т.е наших WS подключений. При этом на клиенте то команда получения сообщения от сервера всего 1 это socket.onmessage в итоге у меня ответ от сервера пихается в одну переменную и список подключений и сообщения, а как все это разделить?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
При этом на клиенте то команда получения сообщения от сервера всего 1 это socket.onmessage в итоге у меня ответ от сервера пихается в одну переменную и список подключений и сообщения, а как все это разделить?


роутинг по типу сообщения же. Типа такого
socket.onmessage = message => {
  const obj = JSON.parse(message);
  switch (obj.type) {
    case MessateTypes.Online: return onOnline(message.payload);
    case MessateTypes.Messages: return onMessages(message.payload);
    default: throw new Error('unrecognized message');
  }
}


Неплохо вообще заюзать стандарт. Например JSON-RPC
https://habr.com/ru/post/441854/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ns174ru
@ns174ru
https://ns174.ru
используйте любой свой символ-разделитель, либо, если делать грамотно, передавайте данные в json массиве
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы