0

我在 ejabberd 上出现在线问题,我正在为客户做一个聊天客户端,我有这部分代码:

client.connect();
client.on('session:started', () => {
    client.getRoster()
    client.sendPresence();
    onConnect();
});

当我获得会话开始事件时,我将我的状态发送到服务器以向其他用户显示“在线”,但它不起作用,事件的名称是否错误?其他功能工作正常我可以发送消息,但只能在离线状态。有小费吗?提前致谢。

4

2 回答 2

1

您需要将您的存在发送到服务器

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)
于 2017-07-17T17:50:36.777 回答
1

确保您的其他客户也发送了他们的出席信息,并且其他用户订阅了您的出席信息。

于 2016-08-21T16:44:01.630 回答