WS websocket send()作为函数

时间:2014-01-22 12:28:58

标签: node.js websocket socket.io node.js-client

我遇到了一些问题。我正在与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客户端中获得实时数据。

1 个答案:

答案 0 :(得分: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客户端。