简介:如何使用Node.js查看是否正在侦听给定端口?
细节:
我正在为Node中的基于HTTP的应用程序编写测试.
我已经扩展节点的http.Server使用util.inherits,以及由此产生的"类"包装标准.listen()在叫我自己的方法的功能.start().此方法执行一些设置(例如连接到MongoDB),然后http.Server.listen(port, cb)在一切都好的时候调用.
我的问题:我想编写一个测试,.start()然后检查服务器是否确实正在侦听指定的端口.我想这样做而不向服务器发送HTTP请求到字段.我只想测试服务器正在监听.
不幸的是,我不熟悉TCP,但考虑到我在端口扫描方面的经验netstat以及这种性质的东西,我觉得 Node的网络包中的某些内容会让我这样做.这可能吗?
小智 7
使用net.connect():
var net = require('net');
var client = net.connect({port: 8124},
function() { //'connect' listener
console.log('client connected');
client.end();
});
Run Code Online (Sandbox Code Playgroud)
关于net模块的Node.JS文档