Отправка и получение данных с помощью Socket.io - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть два клиента, Клиент 1 отправляет данные в наш сервер Node.js & Express, и сервер генерирует событие, которое может получить только Клиент 2. После этого Клиент 2 получает данные и отображает их.

Ниже приведены коды для Клиента 1:

var socket = io();
  socket.emit("match_package", {user_uid, match_uid, room_id, user_data});

Сервер Node.js Express:

var tech = io.of("/");
tech.on("connection", (socket) => {
  socket.on("match_package", (data) => {
    var match_uid = data.match_uid;
    var room_id = data.room_id;
    socket.emit(match_uid, room_id);
    socket.emit("1", "hello");
  }
}

Клиент 2:

var socket = io();
socket.on('connect', () => {
  socket.on(user_uid, (data) => {
    console.log(data);
  })
  socket.emit("1", (data) => {
    console.log(data);
  })
})

match_uid на стороне сервера совпадает с user_uid в клиенте 2 (проверено). Вот как это событие видимо только для Клиента 2. Но почему-то на Клиенте 2 console.log не отображает никаких данных. Я могу гарантировать, что данные получаются хорошо в конце. Но почему-то Клиент 2 его не получает.

Я даже выпустил фиктивное событие "1" из серверной части. Это также не получено Клиентом 2.

Что я тут не так сделал?

Большое спасибо за вашу помощь и время.

1 Ответ

1 голос
/ 23 апреля 2019

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

Здесь вы можете найти то, что вам нужно

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