Как передать объект на websocket?

140
21 мая 2019, 17:00

Начал разбираться в вебсокетами, и пробую написать небольшой чат Ноду особо не знаю, для работы с базой на бекенде php-фреймворк, все запросы ajax в его контроллеры.

На клиентской части инициализирую подключение:

this.webSocket = new WebSocket('ws://localhost:8084');

Соответственно вешаю обработчик:

this.webSocket.send(message);

За серверную часть ответственна нода(отдельный скрипт файл):

var WSServer = new WS.Server({port: 8084}); 
WSServer.on('connection', function (ws) { 
//Подписываемся на событие - получение сообщения
    ws.on('message', function (text) {
        console.log('Сообщение получено. Текст: ' + text);

На этом этапе все понятно. Подключаются пользователей в браузере, даже переписку ведут.

Но как в серверном файле идентифицировать подключенного пользователя? Сейчас получается что все они пишут в один канал и их сообщения никак логически не разделяются.

Скажем если id группы пользователя который подключился в браузере 123 то и все сообщения сохранять в группу с 123. Это именно так я себе представляю механизм, если принцип другой подскажите как правильно?

Для посылки данных используется метод socket.send(data). Пересылать можно любые данные.

Это прописано в руководстве https://learn.javascript.ru/websockets#primer-brauzernogo-koda

При попытке передать в

websocket.send({
  userid : 1,
  group : 2,
  message: 3,
})

в логе на сервере я получаю Сообщение получено. Текст: [object Object] Обратиться по своим ключам тоже не могу.

Как правильно делать и чего я не усвоил в этом вопросе?

READ ALSO
Правильный вывод showMiniCart

Правильный вывод showMiniCart

Нужна помощь, есть функция

139
Принцип объединения react js и express

Принцип объединения react js и express

Я посмотрел не мало примеров как люди используют react js с node express, все сводятся к тому что мне нужно запускать сервер обработчик запросов на одном...

136
метод POST посредством javascript

метод POST посредством javascript

Пытаюсь реализовать метод POST, который будет отправлять данные на серверДанные, в свою очередь, вводятся в поля формы

152
Подскажите почему функция вывела NaN [дубликат]

Подскажите почему функция вывела NaN [дубликат]

На данный вопрос уже ответили:

137