Событие сокета для указанного клиента Android

Я пишу приложение для Android, которое подключается к сокету, реализуемому Node.JS + socket.io. Я использую AndroidAsync ( https://github.com/koush/AndroidAsync) для клиента Android. Я хочу испустить некоторые события, которые может прослушать только указанный клиент. Но я не могу найти способ присоединиться к комнате на Android-клиенте.

  1. Есть ли решение для присоединения комнаты на Android?
  2. Есть ли способ, чтобы клиент Android прослушивал указанные события (не все события), не используя место?

2 ответа

Да, используйте SocketIOClient.of для подключения к определенной конечной точке / каналу. Увидеть:

https://github.com/koush/AndroidAsync/blob/master/AndroidAsync/src/com/koushikdutta/async/http/socketio/SocketIOClient.java#L173

Вы получаете аналогичный обратный вызов подключения, который вызывается при подключении конечной точки, предоставляя новый socketioclient для этой конкретной конечной точки.

Когда клиент подключается на стороне сервера, у вас есть дескриптор сокета, и у него есть идентификатор socket.id, Этот идентификатор уникален для каждого сокета, поэтому вы можете использовать его для идентификации сокетов.

Таким образом, при подключении вы можете сделать свои собственные массивы сокетов и вставить их туда. Затем вы можете перебирать их и генерировать любое сообщение.
Для этого не обязательно использовать встроенные комнаты, и вы можете легко создать свою.

Таким образом, определение сокетов по-своему - позволит вам лучше управлять ими и даст вам возможность отправлять сообщения на определенный сокет. Поскольку существует способ ссылки на него с использованием идентификатора или любого другого метода идентификации.

Другие вопросы по тегам