Soy bastante nuevo en Node.js y tengo una solicitud para una aplicación que recibiría una carga útil de paquetes UDP y la procesaría.Cómo configurar un servidor UDP muy rápido node.js
Estoy hablando de más de 400 mensajes por segundo, que llegarían a algo así como 200,000 mensajes/minuto.
He escrito un código para configurar un servidor UDP (tomado de los documentos aquí http://nodejs.org/api/all.html#all_udp_datagram_sockets en realidad) pero está perdiendo algo alrededor del 5% de los paquetes.
Lo que realmente necesito desarrollar es un servidor que obtenga el paquete y lo envíe a otro trabajador haga el trabajo con el mensaje. Pero parece que enhebrar en node.js es una pesadilla.
Esta es mi núcleo como es:
var dgram = require("dgram");
var fs = require("fs");
var stream = fs.createWriteStream("received.json",{ flags: 'w',
encoding: "utf8",
mode: 0666 });
var server = dgram.createSocket("udp4");
server.on("message", function (msg, rinfo) {
console.log("server got: " + msg + " from " +
rinfo.address + ":" + rinfo.port);
stream.write(msg);
});
server.on("listening", function() {
var address = server.address();
console.log("server listening " +
address.address + ":" + address.port);
});
server.bind(41234);
// server listening 0.0.0.0:41234
Recuerde que los datagramas, a diferencia de los sockets TCP, no están garantizados como recibo. En cambio, los datagramas se centran en la velocidad, sin reconocer los mensajes individuales. – skeggse
Son cosas como estas las que me hicieron cambiar a Go y nunca mirar hacia atrás. –
@AParacha Por favor, elabore, estoy escuchando: D –