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