android - 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 开头,我无法连接?
请帮忙!!!
解决方案
tcp://hostname:1883
并且mqtt://hostname:1883
完全一样。
mqtts://hostname:8883
是基于 TLS 的 MQTT,并且需要已正确配置代理以支持端口 8883 上的 TLS 连接。
如果连接失败时没有错误的详细信息,我们只能说什么。
推荐阅读
- spring-boot - 使用过滤器弹性搜索显示所有值的聚合
- python - 在 python 包中加载外部资源
- webpack - 使用 parallel-webpack 找不到模块
- mysql - nodejs sequelize 连接到远程 mySQL 数据库总是给 ETIMEDOUT
- python - 为什么我在 Atom 上运行 py 脚本时无法导入 web3?
- angular - Angular 模板驱动的表单动态验证
- graph - 如何获取关系属性> =某个值的可变长度模式路径的一部分?
- java - 遍历列表以替换 Java 中的随机元素
- ruby-on-rails - ruby on rails 和 postgresql 连接出错和错误 500
- html - 如何在 Wordpress 中使用 CSS 修复侧边栏?