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

Mac和树莓派运行Node WebSocket服务均报9092端口EADDRINUSE占用错误

问题解决方法

根本原因

你当前启动的Docker Kafka容器已经占用了宿主机的9092端口,而server.js中的WebSocket服务配置为监听相同的9092端口,两个服务抢占同一端口触发EADDRINUSE报错。

具体解决步骤

  • 修改server.js中WebSocket服务的监听端口,替换为未被占用的端口即可,比如8080、3000:
    找到以下代码:
    const wss = new WebSocket.Server({ port: "9092" });
    
    修改为:
    // 此处端口可自行替换为其他未被占用的端口
    const wss = new WebSocket.Server({ port: "8080" });
    
  • 调整前端WebSocket连接地址为修改后的端口,比如原连接地址为ws://localhost:9092的话,同步改为ws://localhost:8080。
  • 确认Docker的Kafka、Zookeeper服务正常运行后,再启动server.js即可正常运行,不会再出现端口占用报错。

如果确实需要WebSocket服务使用9092端口,可调整Kafka的映射端口:

  • 修改docker-compose.yml中Kafka的端口映射配置,将宿主机映射端口改为其他未占用端口,比如9093:
    ports:
      - '9093:9092'
    environment:
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9093
    
  • 重新启动Docker服务使配置生效后,再启动监听9092端口的WebSocket服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:57:02