Transfiera el socket UDP en node.js de la aplicación a HTTP

¿Es posible transferir un Socket proveniente de una aplicación a http a través de NodeJS?

Envío mi socket con una aplicación (en c ++) en UDP o TCP (si es imposible en UDP …) a NodeJS.

Mi script de NodeJS:

var server = dgram.createSocket("udp4"); server.on("message", function (content, rinfo) { console.log("socket: " + content + " from " + rinfo.address + ":" + rinfo.port); }); server.on("listening", function () { }); server.bind(7788); 

Hasta ahora, ¿funciona esa función pero, por ejemplo, cómo transferir mi socket a Socket.io?

Me gustaría enviar el socket a Socket.io (por ejemplo) para transferir el socket a HTTP. Al usar una función como esta, por ejemplo, pero sin renovar, se establece una conexión a socket.io:

 io.sockets.on('connection', function (socket) { socket.emit(content); }); 

Gracias por tu ayuda.

++ Metra.

Aquí hay un ejemplo completo con un servidor socket.io, un servidor web que envía una página muy simple (solo registrará todos los mensajes en la consola) y un socket UDP que escucha los mensajes y los pasa a todos los clientes conectados:

 var http = require('http'), dgram = require('dgram'), socketio = require('socket.io'); var app = http.createServer(handleRequest), io = socketio.listen(app), socket = dgram.createSocket('udp4'); socket.on('message', function(content, rinfo) { console.log('got message', content, 'from', rinfo.address, rinfo.port); io.sockets.emit('udp message', content.toString()); }); function handleRequest(req, res) { res.writeHead(200, {'content-type': 'text/html'}); res.end(" \  \  \ "); } socket.bind(7788); app.listen(8000); 

Actualización: como io.sockets.emit muestra io.sockets.emit , todos los mensajes recibidos en el puerto UDP 7788 se envían a todos los clientes conectados. Si desea enrutarlos basándose en algunos datos del mensaje o similar, puede usar la función “room” de io.sockets.of(someRoom).emit : io.sockets.of(someRoom).emit . En el controlador de conexión para Socket.IO, puede join cada cliente a algún espacio.