我在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)