You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过Chrome DevTools Protocol让调试前端控制台显示消息

解决Chrome DevTools控制台不显示消息的问题
  • 先正确响应Runtime.enable命令
    DevTools发送的每个命令都需要带对应id的响应,否则前端会判定命令未完成,后续事件无法正常处理。你的代码只发送了控制台事件,没有回复Runtime.enable的确认响应,这是核心问题。

修改代码,收到Runtime.enable时先返回成功响应:

const { WebSocketServer } = require('ws');
const wss = new WebSocketServer({ port: 8899 });
wss.on('connection', function connection(ws) {
  ws.on('message', function message(data) {
    console.log('received: %s', data);
    const message = JSON.parse(data);
    if (message.method === 'Runtime.enable') {
      // 先回复命令成功,id必须和前端发送的一致
      ws.send(JSON.stringify({
        id: message.id,
        result: {}
      }));
      // 再发送控制台消息事件
      ws.send(
        JSON.stringify({
          method: 'Runtime.consoleAPICalled',
          params: {
            args: [
              {
                type: 'string',
                value: 'MESSAGE THAT I WANT TO SHOW IN THE CONSOLE PANEL'
              }
            ],
            executionContextId: 1, // 先用默认上下文ID测试
            timestamp: new Date().getTime(),
            type: 'log' // 必须指定消息类型,如log/error/warn
          },
        })
      );
    }
  });
});
  • 补充控制台事件的必填字段
    Runtime.consoleAPICalled事件必须包含type字段,DevTools依赖它识别消息类型,没有该字段会导致消息不渲染。

  • 确保执行上下文ID有效
    固定的27可能不是前端当前存在的上下文ID,先用1(默认执行上下文)测试,后续再根据实际场景维护上下文ID的生成与同步。

  • 验证WebSocket连接状态
    检查DevTools的Network面板,确认WebSocket连接处于OPEN状态,且没有报错信息。

内容的提问来源于stack exchange,提问作者linjunchao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:12:43