Как появиться в сети с помощью клиента 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)

Убедитесь, что ваш другой клиент также отправил свое присутствие, а другой пользователь подписан на ваше присутствие.

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