无法使用 WebSocket 连接到 node.js 检查器
Can not connect to node.js inspector using WebSocket
我正在尝试在 JavaScript 中开发一个 node.js 调试器。我正在使用 node --inspect-brk
执行 JS 脚本,如下所示 -
c:\node\node --inspect-brk test.js
然后打印 WebSocket URL-
Debugger listening on ws://127.0.0.1:9229/bb6eed9d-19d4-47ae-99cf-2f2a09e125ef
For help see https://nodejs.org/en/docs/inspector
现在我正在使用WebSocket连接-
var ws = new WebSocket("ws://127.0.0.1:9229/bb6eed9d-19d4-47ae-99cf-2f2a09e125ef");
ws.onmessage = function(data){console.log(data);}
ws.onerror = function(data){console.log(data);}
但是,当我发送 continue
命令时,我没有收到来自 V8-
的响应
ws.send(JSON.stringify({"seq":117,"type":"request","command":"continue"}));
我在这里找到了 V8 协议的命令 - https://github.com/buggerjs/bugger-v8-client/blob/master/PROTOCOL.md
实际上ws.readyState
为1,表示连接已正确建立。没有错误或消息记录。即使在 chrome 网络选项卡中,我也可以看到发送的数据,但没有从 V8 收到数据,请参见屏幕截图。
测试JS代码-
var x=1;
x++;
console.log(x);
尝试发送此消息:{"id": 7, "method": "Runtime.runIfWaitingForDebugger"}
;
我认为问题可能出在参数“-brk”阻塞了 nodejs 进程。所以当你发送消息时,它无法得到响应。但是当时打开chrome调试的时候,发现效果很好。所以,打开 chrome devtool 并检查 ws 网络信息。我发现 ws 在构建时会发送一些消息。也许当您发送消息时:"Runtime.runIfWaitingForDebugger",nodejs 进程将继续 运行。
shell.js
ws network
我正在尝试在 JavaScript 中开发一个 node.js 调试器。我正在使用 node --inspect-brk
执行 JS 脚本,如下所示 -
c:\node\node --inspect-brk test.js
然后打印 WebSocket URL-
Debugger listening on ws://127.0.0.1:9229/bb6eed9d-19d4-47ae-99cf-2f2a09e125ef
For help see https://nodejs.org/en/docs/inspector
现在我正在使用WebSocket连接-
var ws = new WebSocket("ws://127.0.0.1:9229/bb6eed9d-19d4-47ae-99cf-2f2a09e125ef");
ws.onmessage = function(data){console.log(data);}
ws.onerror = function(data){console.log(data);}
但是,当我发送 continue
命令时,我没有收到来自 V8-
ws.send(JSON.stringify({"seq":117,"type":"request","command":"continue"}));
我在这里找到了 V8 协议的命令 - https://github.com/buggerjs/bugger-v8-client/blob/master/PROTOCOL.md
实际上ws.readyState
为1,表示连接已正确建立。没有错误或消息记录。即使在 chrome 网络选项卡中,我也可以看到发送的数据,但没有从 V8 收到数据,请参见屏幕截图。
测试JS代码-
var x=1;
x++;
console.log(x);
尝试发送此消息:{"id": 7, "method": "Runtime.runIfWaitingForDebugger"}
;
我认为问题可能出在参数“-brk”阻塞了 nodejs 进程。所以当你发送消息时,它无法得到响应。但是当时打开chrome调试的时候,发现效果很好。所以,打开 chrome devtool 并检查 ws 网络信息。我发现 ws 在构建时会发送一些消息。也许当您发送消息时:"Runtime.runIfWaitingForDebugger",nodejs 进程将继续 运行。
shell.js
ws network