我在ejabberd上遇到问题,我正在为客户做一个聊天客户端,我有这部分代码:
client.connect();
client.on('session:started', () => {
client.getRoster()
client.sendPresence();
onConnect();
});
当我开始会话时,我将我的状态发送到服务器以显示" online"对于其他用户,但它不起作用,事件的名称是错误的吗?其他功能工作正常,我可以发送消息,但只能在离线状态。有小费吗?提前谢谢。
答案 0 :(得分:1)
确保您的其他客户也有sent their presence,而另一位用户subscribed即可。
答案 1 :(得分: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)