Как сделать так, чтобы socket.io отправлял сообщения emit только одному клиенту? - PullRequest
1 голос
/ 09 апреля 2020

Я работаю над игрой и использую сокеты для некоторых простых бэкэндов. Одна проблема, которую я заметил, состоит в том, что, когда игрок умирает, я испускаю сокет с просьбой перезагрузить игру. проблема в том, что это отправляется всем, поэтому, когда один человек умирает, все отправляются обратно на домашний экран.

Как я могу сделать так, чтобы (io.emit - сервер) влиял только на ( socket.on - клиент)?

Мое сердце остановилось, когда я понял это, я дошел до этого и не могу поверить, что это не приходило мне в голову!

1 Ответ

0 голосов
/ 10 апреля 2020

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

сервер. js

io.on('connection', function(socket) {
    io.to(socket.id).emit('private', 'you're secret code is ' + code);
});

клиент. js

socket.on('private', function(msg) {
    alert(msg);
});

https://socket.io/docs/emit-cheatsheet/ содержит кучу полезной информации в небольшом количестве места. также здесь есть ссылка на другой вопрос, если вы хотите узнать более одного решения:

Отправьте сообщение на указанный c клиент с socket.io и node.js

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