Не удается подключиться к инспектору node.js с помощью WebSocket - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь разработать отладчик node.js на JavaScript. Я выполняю сценарий JS, используя node --inspect-brk, как показано ниже -

c:\node\node --inspect-brk test.js

Затем он печатает URL-адрес WebSocket-

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 Network я вижу отправленные данные, но данные от V8 отсутствуют, см. Скриншот.

Network log

Тестовый код JS-

var x=1;
x++;
console.log(x);

1 Ответ

0 голосов
/ 23 ноября 2018

попробуйте отправить это сообщение: {"id": 7, "method": "Runtime.runIfWaitingForDebugger"};

Я думаю, что, возможно, проблема в том, что параметр -brk блокирует процесс nodejs.поэтому, когда вы отправляете сообщение, оно не может получить ответ.но когда вы открыли chrome для его отладки, вы обнаружили, что он работает хорошо.Итак, откройте Chrome Devtool и проверьте информацию о сети WS.я обнаружил, что ws отправляет некоторые сообщения при сборке.возможно, когда вы отправите сообщение: «Runtime.runIfWaitingForDebugger», процесс nodejs продолжит работу.

shell.js

ws network

...