我对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