我在这里会非常具体,希望了解这一点的人可以编辑以重新表述一般情况。
目前,当您运行“node debug”时,它会生成一个进程来侦听端口 5858。然后在父进程中尝试连接到该端口。
但是,如果您正在运行另一个“节点调试”会话,则当前“节点调试”会挂起,因为该端口正在使用中。
具体来说,您看到的消息是:
$ node debug example/gcd.js 3 5
< debugger listening on port 5858 >
connecting...
更好的是它能够检测到该端口正在使用中(无需连接到该端口,这可能会扰乱尝试连接现有调试器的另一个客户端)。
Edit:已接受的解决方案现已在海雷帕尼 https://www.npmjs.com/package/trepan-ni and trepanjs https://www.npmjs.com/package/trepanjs.
也可以看看Node JS - 如何判断套接字是否已使用 Einaros WS 套接字模块打开? https://stackoverflow.com/questions/27256432/node-js-how-can-you-tell-if-a-socket-is-already-open-with-the-einaros-ws-socke/27257626#comment47845396_27257626
我使用的是以下内容的变体:
var net = require('net');
var portInUse = function(port, callback) {
var server = net.createServer(function(socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
});
server.on('error', function (e) {
callback(true);
});
server.on('listening', function (e) {
server.close();
callback(false);
});
server.listen(port, '127.0.0.1');
};
portInUse(5858, function(returnValue) {
console.log(returnValue);
});
实际的提交涉及更多一点是https://github.com/rocky/trepanjs/commit/f219410d72aba8cd4e91f31fea92a5a09c1d78f8 https://github.com/rocky/trepanjs/commit/f219410d72aba8cd4e91f31fea92a5a09c1d78f8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)