如何解决Strophe.js消息处理程序不会触发
我添加到连接中的Strophe onMessage处理程序似乎并不会在消息发送时触发。我似乎找不到问题。我也找不到很多其他信息,但我发现的信息似乎表明我的代码是正确的。我可以发送消息,所以我知道连接有效,但是我无法接收消息。
XMPPChatConnection() {
if (this.#connection === undefined) {
this.#connection = new XMPPHelper.Strophe.Connection(
"wss://xxxxxxxxxxxxxxxxxxxxxxx",{protocol: "wss"}
);
this.login();
}
return this.#connection;
}
login函数调用chatListeners函数,该函数应设置用户登录时所需的所有侦听器:
login() {
let jid = this.composeJabberIdentifier();
let token = this.getXMPPToken();
this.#connection.connect(jid,token,(status) => {
if (status === XMPPHelper.Strophe.Status.CONNECTED) {
this.chatListeners();
}
});
}
messageListener是一个导入的函数,目前仅包含控制台日志:
import messageListener from "../classes/listeners/xmpp/chat/messageListener";
chatListeners() {
this.XMPPChatConnection().addHandler(messageListener,null,'message','chat');
}
messageListener:
export default function messageListener(message) {
console.log(message);
}
我做错了什么?
解决方法
因此,我找到了造成问题的原因。我当时使用Xabber客户端发送回消息,但事实证明Xabber将消息发送到了错误的资源。
最重要的是,我应该以> = 0的优先级登录后设置我的状态。
this.XMPPChatConnection().send($pres().c("priority").t("0"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。