Привет, я хочу передать в конкретный сокет, который я сохранил в переменной:
socket.on('register', () => {
clintToEmitTo = socket.id;
console.info('clint To Emit To Socket ID ', clintToEmitTo);
});
Я знаю, что для отправки в конкретный сокет мне нужно сделать следующее:
socket.to(clintToEmitTo).emit('getName', (response) => {
console.info(response);
});
Однако я хочу иметь возможность использовать обратный вызов или подтверждение, вот что я получаю:
(node:1956) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Callbacks are not supported when broadcasting (node:1956) [DEP0018]
обратите внимание: событие emit может быть вызвано другим клиентским событием, поэтому я не добавил обратный вызов для зарегистрированного события
это не имеет значения, вы все равно получите ту же ошибку. что вы имеете в виду (переместите обратный вызов функции как третий параметр)
socket.to(clintToEmitTo).emit('getName', '', (response) => { console.info(response); });
да, это выходит с той же ошибкой
Просто отправить что-нибудь? :
socket.to(clintToEmitTo).emit('getName', "something");
это не имеет значения, вы все равно получите ту же ошибку, если у вас есть обратный вызов. socket.to (clintToEmitTo) .emit ('getName', "что-то") или socket.to (clintToEmitTo) .emit ('getName') будет работать нормально, но вы не сможете выполнить обратный вызов
emit
ожидает, что какой-то объект будет вторым параметром, вы передаетеfunction
, может быть в этом проблема? попробуйте переместить обратный вызов функции как третий параметр.