node.js lauschen auf UDP und leiten an verbundene http-Webclients weiter

Ich bin neu in node.js, also vergib der Unwissenheit, wenn dies einfach ist.

Ich möchte einen einfachen node.js http-Server einrichten, mit dem sich ein Web-Client verbindet. Ich möchte auch, dass der node.js-Server als UDP-Listener auf einem separaten Port fungiert, auf dem er JSON-Nutzdaten von einer anderen Anwendung empfängt. Ich möchte, dass der node.js-Server diese JSON-Nutzdaten sofort an einen oder mehrere der verbundenen Web-Clients weiterleitet.

Ich habe es so weit gebracht, dass ich nicht anfänglich gegoogelt habe:

Erstellen Sie einen einfachen node.js-HTTP-Server, der mit einer statischen HTML-Seite antwortet:

//Initialize the HTTP server on port 8080, serve the index.html page
var server = http.createServer(function(req, res) {
    res.writeHead(200, { 
        'Content-type': 'text/html'});
        res.end(fs.readFileSync(__dirname + '/index.html'));
    }).listen(8080, function() {
        console.log('Listening at: 127.0.0.1 8080');
    }
);

Initialisieren Sie einen UDP-Server an einem separaten Port:

//Initialize a UDP server to listen for json payloads on port 3333
var srv = dgram.createSocket("udp4");
srv.on("message", function (msg, rinfo) {
  console.log("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port);
  io.sockets.broadcast.emit('message', 'test');
  //stream.write(msg);
  //socket.broadcast.emit('message',msg);
});

srv.on("listening", function () {
  var address = srv.address();
  console.log("server listening " + address.address + ":" + address.port);
});

srv.bind(5555);

Verwenden Sie socket.io, um eine Live-Verbindung zwischen dem Web-Client und dem Server herzustellen:

//this listens for socket messages from the client and broadcasts to all other clients
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
    socket.on('message', function (msg) {
      console.log('Message Received: ', msg.data.skeletons[0] ? msg.data.skeletons[0].skeleton_id : '');
      socket.broadcast.emit('message', msg);
    }
  );
});

Ich schätze, mein Problem ist, dass ich nicht weiß, wie ich 2 und 3 verbinden soll, um die empfangenen UDP-Pakete an die verbundenen socket.io-Clients zu senden. Oder gibt es eine einfachere, elegantere Art, dies zu tun? Ich habe festgestellt, dass die Dokumentation für socket.io fehlt ...

BEARBEITEN: Dank an die Person, die die Code-Formatierung korrigiert hat

Antworten auf die Frage(1)

Ihre Antwort auf die Frage