所以我正在为Node.js创建一个用户区域库,该库包含一个服务器。用户可以发出一个启动服务器两次的命令 - 但服务器不需要重启,只需要启动一次。我想最小化用户必须等待库告诉用户服务器已经在端口X上侦听的时间量,因为这可能会发生很多,因为库总是需要检查服务器是否已经存在。我可以等待系统"已经在听#34;错误,但有没有办法比这快失败?有没有办法锁定其他资源,最好的方法是什么?
请注意,这将始终是在localhost上运行的服务器。
我发现tcp-ping库可以很快确定服务器是否可用。
const tcpp = require('tcp-ping');
tcpp.probe(server.host, server.port, function (err, available) {
//callback always seems to fire within 10ms...
if(err){
//some crappy error
}
else if(available){
//server is live
}
else{
// server is not live
}
});
是tcp-ping库可能是最好的方法吗?
答案 0 :(得分:2)
您始终可以在某个位置保留.server_status
文件,以指示服务器已启动。
只需要在启动时查找(如果存在则退出),在启动服务器时创建它,在服务器关闭时删除。许多应用程序都使用这种方法