如何使用stanza出现在网上.IO客户端和ejb服务器



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

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

当我得到会话开始事件我发送我的存在到服务器出现"在线"给其他用户,但它不起作用,事件的名称是错误的吗?其他功能工作良好,我可以发送消息,但只能在离线状态。任何建议吗?

确保您的其他客户端也发送了他们的状态,并且其他用户订阅了您的状态。

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

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)

相关内容

  • 没有找到相关文章