如何确保成功离开聊天室? (instance.connection.muc.leave())
How to make sure that a chat-room was left successfully? (instance.connection.muc.leave())
在这里,我发现可以将回调作为 leave
方法的第三个参数添加:https://github.com/metajack/strophejs-plugins/blob/96da306f5394b901e190a3f7365fbbb676fddb51/muc/strophe.muc.js#L117
但是没用。
如何向 instance.connection.muc.leave() 方法添加回调或其他内容以确保成功离开聊天室?
也许还有更多方法可以确保我们已经离开聊天室?
function handler_cb() {
console.log('>>>>>>>>> leave was successfull');
}
function leaveChat() {
instance.connection.muc.leave(room, nick, handler_cb);
}
我认为插件本身有错误
他们使用 presenceid(节 ID)属性来匹配来自服务器的响应 https://github.com/metajack/strophejs-plugins/blob/master/muc/strophe.muc.js#L146
但并非所有服务器都在状态中使用节 ID。实际上 XEP-0045 exit presence 中没有关于 presence ID 的任何内容,因此某些服务器可能会实现 ID 回显逻辑但大多数情况下不会(并且看起来也像您的 XMPP 服务器)
所以我建议自己设置这个header,w/o 'presenceid':
function leaveChat() {
instance.connection.addHandler(leaveCallback, null, "presence", "unavailable");
instance.connection.muc.leave(room, nick);
}
function leaveCallback() {
console.log('>>>>>>>>> leave was successfull');
instance.connection.deleteHandler(leaveCallback);
}
在这里,我发现可以将回调作为 leave
方法的第三个参数添加:https://github.com/metajack/strophejs-plugins/blob/96da306f5394b901e190a3f7365fbbb676fddb51/muc/strophe.muc.js#L117
但是没用。 如何向 instance.connection.muc.leave() 方法添加回调或其他内容以确保成功离开聊天室? 也许还有更多方法可以确保我们已经离开聊天室?
function handler_cb() {
console.log('>>>>>>>>> leave was successfull');
}
function leaveChat() {
instance.connection.muc.leave(room, nick, handler_cb);
}
我认为插件本身有错误
他们使用 presenceid(节 ID)属性来匹配来自服务器的响应 https://github.com/metajack/strophejs-plugins/blob/master/muc/strophe.muc.js#L146
但并非所有服务器都在状态中使用节 ID。实际上 XEP-0045 exit presence 中没有关于 presence ID 的任何内容,因此某些服务器可能会实现 ID 回显逻辑但大多数情况下不会(并且看起来也像您的 XMPP 服务器)
所以我建议自己设置这个header,w/o 'presenceid':
function leaveChat() {
instance.connection.addHandler(leaveCallback, null, "presence", "unavailable");
instance.connection.muc.leave(room, nick);
}
function leaveCallback() {
console.log('>>>>>>>>> leave was successfull');
instance.connection.deleteHandler(leaveCallback);
}