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

NestJS 9中创建MQTT微服务报错ECONNREFUSED 127.0.0.1:1883求助

NestJS 9 MQTT微服务连接失败问题排查与解决方案

错误原因

ERROR [Server] Error: connect ECONNREFUSED 127.0.0.1:1883 表示NestJS的MQTT客户端无法连接到指定地址的MQTT代理服务,核心问题是本地1883端口没有运行可用的MQTT Broker,常见诱因包括:

  • 未安装MQTT Broker(如Mosquitto、EMQX)
  • Broker未启动,或启动后未监听1883端口/localhost地址
  • 系统防火墙、杀毒软件拦截了1883端口的TCP连接
  • 代码中MQTT配置的地址/端口与实际Broker不匹配

解决方案

1. 安装并启动本地MQTT Broker(以Mosquitto为例)

  • macOS:
    brew install mosquitto
    brew services start mosquitto
    
  • Windows:
    通过Chocolatey安装:
    choco install mosquitto
    
    启动服务:在系统服务列表找到「Mosquitto Broker」并启动,或执行命令:
    net start mosquitto
    
  • Linux(Ubuntu/Debian):
    sudo apt-get install mosquitto
    sudo systemctl start mosquitto
    
  • 验证:执行mosquitto_sub -h localhost -t test,若命令无报错且保持运行,说明Broker已正常启动。

2. 检查Broker配置

打开Mosquitto的配置文件(通常路径:macOS/usr/local/etc/mosquitto/mosquitto.conf,WindowsC:\Program Files\mosquitto\mosquitto.conf),确认:

  • 未注释listener 1883(确保监听1883端口)
  • 未设置bind_address为非localhost地址(本地连接保持默认即可)
    修改后重启Broker服务。

3. 排查端口拦截

  • 临时关闭系统防火墙,测试是否能正常连接,若恢复正常,需在防火墙中添加1883端口的允许规则。
  • 检查杀毒软件,部分工具会拦截本地端口连接,可临时关闭或添加信任规则。

4. 修正代码配置

确保代码中的MQTT配置与Broker一致,若Broker有认证,需补充用户名密码:

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  app.connectMicroservice({
    transport: Transport.MQTT,
    options: {
      url: 'mqtt://localhost:1883', // 匹配Broker地址和端口
      clientId: 'test',
      // 可选:添加重连机制,避免单次连接失败直接崩溃
      reconnectPeriod: 1000,
      // 若Broker开启认证,添加以下配置
      // username: 'your-username',
      // password: 'your-password',
    },
  });
  console.log('cp1');
  await app.startAllMicroservices();
  console.log('cp2');
  await app.listen(3000);
  console.log('Server ' + (await app.getUrl()) + ' is running');
}

5. 测试端口可用性

用以下命令验证1883端口是否开放:

# 使用telnet
telnet localhost 1883
# 或使用nc
nc -zv localhost 1883

若连接失败,说明端口无服务监听,回到步骤1-3重新排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:10:35