Strophe.js 消息处理程序未触发
Strophe.js on-message handler doesn't trigger
我添加到连接的 Strophe onMessage 处理程序似乎不会在消息发送时触发。我似乎找不到问题所在。我也找不到很多其他信息,而且我找到的信息似乎表明我的代码是正确的。我可以发送消息,所以我知道连接有效,但我无法接收消息。
我是这样创建连接的,如果有新连接就调用登录函数:
XMPPChatConnection() {
if (this.#connection === undefined) {
this.#connection = new XMPPHelper.Strophe.Connection(
"wss://xxxxxxxxxxxxxxxxxxxxxxx",
{protocol: "wss"}
);
this.login();
}
return this.#connection;
}
登录函数调用 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');
}
消息监听器:
export default function messageListener(message) {
console.log(message);
}
我做错了什么?
所以我找到了问题的原因。我正在使用 Xabber 客户端发回消息,但结果 Xabber 将消息发送到了错误的资源。
最重要的是,我应该在登录后设置我的状态 >= 0。
this.XMPPChatConnection().send($pres().c("priority").t("0"));
我添加到连接的 Strophe onMessage 处理程序似乎不会在消息发送时触发。我似乎找不到问题所在。我也找不到很多其他信息,而且我找到的信息似乎表明我的代码是正确的。我可以发送消息,所以我知道连接有效,但我无法接收消息。
我是这样创建连接的,如果有新连接就调用登录函数:
XMPPChatConnection() {
if (this.#connection === undefined) {
this.#connection = new XMPPHelper.Strophe.Connection(
"wss://xxxxxxxxxxxxxxxxxxxxxxx",
{protocol: "wss"}
);
this.login();
}
return this.#connection;
}
登录函数调用 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');
}
消息监听器:
export default function messageListener(message) {
console.log(message);
}
我做错了什么?
所以我找到了问题的原因。我正在使用 Xabber 客户端发回消息,但结果 Xabber 将消息发送到了错误的资源。
最重要的是,我应该在登录后设置我的状态 >= 0。
this.XMPPChatConnection().send($pres().c("priority").t("0"));