Как настроить очень быстрый сервер Node.js UDP

Я совсем новичок в Node.js и у меня есть запрос на приложение, которое бы получало полезную нагрузку UDP-пакетов и обрабатывало ее.

Я говорю о более чем 400 сообщениях в секунду, что составляет около 200 000 сообщений в минуту.

Я написал код для настройки UDP-сервера (, взятый из документации здесьhttp://nodejs.org/api/all.html#all_udp_datagram_socketsна самом деле ), но он теряет около 5% пакетов.

Что мне действительно нужно разработать, так это сервер, который будет получать пакет и отправлять его другому работнику, выполняющему работу с сообщением. Но похоже, что многопоточность в node.js — это кошмар.

Это мое ядро ​​как есть:

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

11
задан Panthro 19 April 2012 в 16:38
поделиться