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

如何在Android Studio模拟器中连接本地Mosquitto MQTT服务器

问题根因

当前你的Mosquitto服务仅绑定了本地回环地址(127.0.0.1、IPv6回环地址::1),仅支持本机内部访问,无法接收来自Android模拟器等外部设备的连接请求。

解决步骤

1. 修改Mosquitto配置放开监听限制

  • 打开Mosquitto安装目录下的mosquitto.conf配置文件
  • 找到对应配置项,去掉注释并修改为如下内容:
    # 绑定所有网卡的1883端口,也可直接指定你的本机局域网IP 192.168.0.5
    listener 1883 0.0.0.0
    # 排查阶段先允许匿名访问,避免权限问题导致连接失败
    allow_anonymous true
    
  • 保存配置后重启Mosquitto服务,可通过cmd执行命令net stop mosquitto && net start mosquitto完成重启。

2. 验证监听配置生效

重启服务后在cmd执行netstat -ano | findstr 1883,确认返回结果中出现TCP 0.0.0.0:1883或者TCP 192.168.0.5:1883的监听记录,说明绑定配置已生效。

3. 配置Windows防火墙放行端口

  • 打开Windows Defender防火墙→高级设置→入站规则→新建规则
  • 规则类型选择「端口」,下一步后选择TCP,特定本地端口填写1883,继续下一步
  • 选择「允许连接」,下一步后根据你的网络环境勾选适用的网络类型(建议临时全选域、专用、公网),下一步
  • 规则名称填写Mosquitto 1883端口放行,点击完成即可。

4. 调整Android端配置(可选)

如果仍连接失败,可先调整连接参数排查问题:

MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
mqttConnectOptions.setAutomaticReconnect(true);
mqttConnectOptions.setCleanSession(true); // 排查阶段开启干净会话,避免历史会话冲突
mqttConnectOptions.setConnectionTimeout(10); // 设置10秒连接超时
mqttConnectOptions.setKeepAliveInterval(20);

同时确认AndroidManifest.xml中已添加必要的网络权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:33:03