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

使用--inspect-brk=localhost:3000时出现WebSockets request was expected错误求助

解决「WebSockets request was expected」调试错误

嘿,这个问题我之前踩过坑,核心原因其实很简单——端口冲突!

问题根源

--inspect-brk是Node.js的调试标志,它会在你指定的端口(这里你填了3000)上建立一个调试用的WebSocket服务,等着调试工具(比如Chrome DevTools)来连接。但你的服务器程序本身默认也是监听3000端口处理HTTP请求,这就导致两个服务抢同一个端口了:

  • 当调试器在3000端口等着WebSocket连接时,你去访问API发的是HTTP请求,调试器识别不了,就抛出了「WebSockets request was expected」错误。
  • 反过来,如果服务器先占了3000端口,调试器启动时会直接报错“端口被占用”,不过看起来你的情况是调试器先启动了,所以出现WebSocket相关的错误。

快速解决方案

给调试器和服务器分配不同的端口就行,两种方法任选:

方法1:修改调试器端口

把调试端口换成Node.js默认的调试端口9229(或者其他未被占用的端口),命令改成:

nodemon --inspect-brk=localhost:9229 dist/server/app.js

这样服务器继续用3000,调试器用9229,互不干扰。之后你可以通过Chrome浏览器访问chrome://inspect来连接调试器。

方法2:修改服务器监听端口

如果你一定要用3000作为调试端口,那就在你的服务器代码里把监听端口改成其他值,比如3001:

// 假设你的服务器启动代码是这样的
app.listen(3001, () => {
  console.log('Server running on port 3001');
});

之后运行调试命令时,服务器会在3001端口处理API请求,调试器在3000端口等待调试连接。

额外检查项

如果上面的方法没解决,你可以检查一下:

  • 有没有其他程序占用了3000或你指定的调试端口,可以用lsof -i :3000(Mac/Linux)或netstat -ano | findstr :3000(Windows)查看端口占用情况。
  • 你的nodemon配置文件(比如nodemon.json)里有没有设置额外的端口参数,导致端口冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:31:46