Javascript 如何通过websocket将我的客户机连接到服务器,而服务器连接到另一台服务器

Javascript 如何通过websocket将我的客户机连接到服务器,而服务器连接到另一台服务器,javascript,node.js,websocket,Javascript,Node.js,Websocket,我不熟悉使用WebSocket,我正在尝试使用ws包执行以下操作: 客户端服务器X服务器Y 客户机通过websocket连接到服务器X——这是我的服务器。客户端向服务器X发送初始数据段 只有在从客户机接收数据之后,服务器X才需要通过websocket连接到服务器Y(第三方服务器) 然后,服务器X侦听从服务器Y发送的新数据 当从Y发送新数据时,服务器X需要进行一些修改,然后将修改后的数据发送回客户端 另外,我的连接工作正常: const WebSocket = require('ws'); //

我不熟悉使用WebSocket,我正在尝试使用
ws
包执行以下操作:

客户端服务器X服务器Y

  • 客户机通过websocket连接到服务器X——这是我的服务器。客户端向服务器X发送初始数据段
  • 只有在从客户机接收数据之后,服务器X才需要通过websocket连接到服务器Y(第三方服务器)
  • 然后,服务器X侦听从服务器Y发送的新数据
  • 当从Y发送新数据时,服务器X需要进行一些修改,然后将修改后的数据发送回客户端
  • 另外,我的连接工作正常:

    const WebSocket = require('ws');
    
    //connection between client and server X
    const wss = new WebSocket.Server({ port: 5000 });
    wss.on('connection', function connection(ws) {
      ws.on('message', function incoming(message) {
        console.log(message);
      });
    });
    
    // connection to server Y, but this needs to happen AFTER client sends a message to server X
    const ws = new WebSocket(
      'ws://someurl/',
      [],
      {
        headers: {
          // data from client needs to go here
        }
      }
    );
    
    ws.on('message', function incoming(message) {
      const modifiedData = doSomething(message)
      // I need to send modifiedData to the client
    });
    

    我只是不确定如何将这两件事联系起来,我想知道这样做的好方法是什么。非常感谢任何帮助。

    关于第2点:用户发送数据后,为什么需要连接到服务器Y?已经有一个开放的连接不是更有意义吗?否则,下一个连接的用户是否会创建到服务器Y的新连接?那之后的下一个呢?我建议在X和Y之间始终保持一个开放的连接,其中,服务器X只起到中间件层的作用(这意味着它在传递数据之前拦截和修改数据)。