0
我有一个服务器(在Nodejs开发)与UDP远程设备上的100s通信。我想基准它。为此,我需要创建几个UDP客户端,每秒钟与服务器进行通信。由于多线程在Nodejs中是不可能的,所以我该如何实现呢?任何人都可以给我一些解决方案。基于UDP的客户端在Nodejs
我有一个服务器(在Nodejs开发)与UDP远程设备上的100s通信。我想基准它。为此,我需要创建几个UDP客户端,每秒钟与服务器进行通信。由于多线程在Nodejs中是不可能的,所以我该如何实现呢?任何人都可以给我一些解决方案。基于UDP的客户端在Nodejs
多线程是不可能的NodeJS
这是不对的。我们在nodejs中的主要事件循环仅仅是单线程的,但是每当使用回调函数调用异步函数时,您都有一个运行I/O网络的附加线程。如果这完成了,你的回调方法将被调用,并返回到主事件循环(简单地说)。因此,要创建多个UDP客户端并让它们触发并强调UPD服务器应该不成问题,因为client.send
是异步的。要并行运行它们,您可以使用模块async
。
const dgram = require('dgram');
const async = require('async');
async.parallel([
function(callback) {
var client1 = dgram.createSocket('udp4');
client1.send("hello", 41234, 'localhost', function(err) {
client1.close();
callback();
});
},
function(callback) {
var client2 = dgram.createSocket('udp4');
client2.send("world", 41234, 'localhost', function(err) {
client2.close();
callback();
});
}
],
// optional callback
function(err, results) {
// I am done here...
process.exit();
});
或者你可以做到这一点
const dgram = require('dgram');
var client1 = dgram.createSocket('udp4');
var client2 = dgram.createSocket('udp4');
// This also runs in parallel
client1.send("hello", 41234, 'localhost', function(err) {
client1.close();
});
client2.send("world", 41234, 'localhost', function(err) {
client2.close();
});
感谢的人,我婉在不同网页上四处游荡,没得到我需要的东西... – Usman