1

我对此有一些问题。我正在使用 socket.io(工作)连接到另一台服务器,我想通过 WS 发送到客户端(处理)。主要问题是它只发送一次,我想一直发送 socket.io 获得输入。

实际代码:

var io = require("socket.io-client");
var socket = io.connect('http://socket.io.server:8000');
var WebSocketServer = require('ws').Server
 , wss = new WebSocketServer({port: 8080});

var temp = 0;

socket.on('connect', function () {
    console.log("socket connected") ;
});

socket.on('udp message', function(msg) { 
    temp = msg/100;
    console.log(temp) ;
    wss.on('connection', function(ws) {
          ws.send(temp.toString());
    });
});

我想要的:

socket.on('udp message', function(msg) { 
    temp = msg/100;
    console.log(temp) ;
    ws.send(temp.toString());

});


 wss.on('connection', function(ws) {
    console.log("Connected to client")
});

这样我就可以在我的 WS 客户端中获得实时数据。

4

1 回答 1

1

如果你只需要处理一个 WebSocket 客户端,你可以这样做:

var ws = null;
socket.on('udp message', function(msg) { 
  var temp = msg/100;
  console.log(temp);
  // make sure we have a connection
  if (ws !== null) {
    ws.send(temp.toString());
  }
});

wss.on('connection', function(_ws) {
  console.log("Connected to client");
  ws = _ws;
});

如果您有多个 WebSocket 客户端,则需要将它们存储_ws在一个数组中,并且对于每个传入udp message事件,将其发送到存储在该数组中的每个 WebSocket 客户端。

于 2014-01-22T12:37:54.520 回答