如何确保聊天室成功? (instance.connection.muc.leave())
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何确保聊天室成功? (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退出存在中没有任何关于存在ID的信息,因此一些服务器可能实现ID回显逻辑,但大部分都没有(并且看起来也像您的XMPP服务器)
所以我建议你自己设置这个标题,没有'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);
}
以上是关于如何确保聊天室成功? (instance.connection.muc.leave())的主要内容,如果未能解决你的问题,请参考以下文章