我对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
请记住,数据报,不像TCP套接字,没有保证的广告收据。相反,数据报关注速度,而不需要确认单个消息。 – skeggse 2013-01-09 08:10:05
这就是这样的事情,让我切换到Go,永不回头。 – 2017-02-28 17:57:37
@AParacha请详细说明,我在听:D – 2017-07-29 13:06:59