Как появиться в сети с помощью клиента stanza.io и сервера ejabberd?
У меня проблема с появлением в сети на ejabberd, я делаю чат-клиент для клиента и у меня есть эта часть кода:
client.connect();
client.on('session:started', () => {
client.getRoster()
client.sendPresence();
onConnect();
});
Когда я получаю событие начала сеанса, я отправляю свое присутствие на сервер, чтобы оно показывалось "онлайн" другим пользователям, но это не работает, неверно ли название события? Другие функции работают нормально, я могу отправлять сообщения, но только в автономном режиме. Какие-нибудь советы? Заранее спасибо.
2 ответа
Вы должны отправить свое присутствие на сервер
this.client.on('session:started', () => {
this.client.enableCarbons(err => {
if (err) {
console.log('Server does not support carbons', err);
}
});
this.client.sendPresence();
});
При сохранении любого нового пользователя, мы должны подписать этого пользователя
this.client.subscribe(id);
и противоположный пользователь должен принять подписку, когда он получает тип присутствия в качестве подписки
this.client.acceptSubscription(id)
Убедитесь, что ваш другой клиент также отправил свое присутствие, а другой пользователь подписан на ваше присутствие.