Есть ли способ вызвать событие для конкретного клиента, а не для всех подключенных клиентов с помощью сокета.io?

Вместо отправки события всем подключенным клиентам с помощью ввода-вывода.emit (), я хотел бы просто вызвать событие для одного клиента.

1 ответ

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

    someSocket.emit(...)
    

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

    Подводя итог: io.emit()отправляет всем подключенным пользователям. someSocket.emit()отправляет только один сокет.


    К вашему сведению, вы не»вызываете событие к конкретному клиенту». Вы можете «отправить сообщение конкретному клиенту». Затем код клиента можно зарегистрировать для получения уведомления о поступлении указанного входящего сообщения.