如何使用WebSocket在NodeJ中创建多个XMPP客户端

如何使用WebSocket在NodeJ中创建多个XMPP客户端,websocket,xmpp,Websocket,Xmpp,我有一个electron应用程序,可以创建到NodeJS服务器的websocket连接。它向该服务器发送一个JSON请求,告诉它创建一个xmpp客户端 let message = { action: "setupXmpp", data: { username, password, }, }; socket.send(JSON.stringify(message)); 在该服务器中,我有一个开关,用于读取消息操作并创建xmpp客户端。xmppActions中的代码是

我有一个electron应用程序,可以创建到NodeJS服务器的websocket连接。它向该服务器发送一个JSON请求,告诉它创建一个xmpp客户端

let message = {
  action: "setupXmpp",
  data: {
    username,
    password,
  },
};

socket.send(JSON.stringify(message));
在该服务器中,我有一个开关,用于读取消息操作并创建xmpp客户端。xmppActions中的代码是取自xmpp的标准样板文件

一切正常,我可以创建一个xmpp客户端并发送消息,一切正常

我的问题是,当我打开两个客户端时,它们都注册(使用不同的用户名和密码),无论最后一个请求是谁,都会覆盖上一个注册。我已经完成了wireshark跟踪,两个websocket连接按照我的预期创建,但在发送消息时,它们都使用最新的寄存器。我假设这是因为XMPP客户机是一个常量,无论最后一个是谁,它都会将这些常量用于所有未来的请求


如何使每个websocket连接都有自己的XMPP客户端,就像每个websocket特定的请求范围客户端一样。

我在websocket连接外部有一个常量,将其更改为内部有一个变量,这样每个连接都有自己的客户端。

我在websocket连接外部有一个常量,将其更改为内部有一个var,这样每个连接都有自己的客户端

const xmppActions = require("./Webapp/xmppActions");
case "setupXmpp":
    console.log(`Received setupXmpp request`);

    var { username, password } = message.data;
    const xmpp = xmppActions.setUpXMPPconn(username, password);

    xmpp.on("online", async (address) => {
      console.log("▶", "online as", address.toString());
      ws.send("Register xmpp Success!");
    });
    break;