首页 > 解决方案 > Mqtt Android PahoClient 连接问题

问题描述

嗨,我正在使用 Android paho 库来连接 mqtt 服务器。

我的应用级别 Gradle 端代码:

implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'

项目级别

所有项目{

    repositories {
        jcenter()
        maven {
            url "https://repo.eclipse.org/content/repositories/paho-snapshots/"
        }
        maven { url "https://jitpack.io" }
        maven {
            url "https://maven.google.com"
        }
    }
}

在清单文件中

<service android:name="org.eclipse.paho.android.service.MqttService" />

权限

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

我的问题是当我的服务器 url 为tcp://:1883时,我能够连接、发布数据和订阅主题

当我将我的网址更改为mqtts://:8883时,它无法连接

那么方案tcp://mqtts://mqtt://有什么区别? 为什么如果方案以 mqtt 开头,我无法连接

请帮忙!!!

标签: androidmqttpahoandroid-mqtt-client

解决方案


tcp://hostname:1883并且mqtt://hostname:1883完全一样。

mqtts://hostname:8883是基于 TLS 的 MQTT,并且需要已正确配置代理以支持端口 8883 上的 TLS 连接。

如果连接失败时没有错误的详细信息,我们只能说什么。


推荐阅读