Problem
我创建了一个应用程序,它是 MQTT 代理客户端。当我使用 iOS/Android 模拟器进行开发时,我与代理的连接工作正常。但是,当我发布 apk 版本时,我的应用程序无法连接。它有套接字问题(AMQJS0007E 套接字错误:未定义)。
我已经尝试过这个解决方案github解决方案 https://github.com/eclipse/paho.mqtt.javascript/issues/99%5D
截屏
应用程序在模拟器中运行
[]
应用发布版本运行
[]
this.client.connect({
timeout: 10,
onSuccess: () => {
this.isConnected = true;
onSuccessHandler();
},
useSSL: false,
onFailure: this.onFailure,
reconnect: true,
keepAliveInterval: 20,
cleanSession: true,
});
Android:无法向服务器发送数据。明文通信至
网络安全策略不允许。
从 Android 9(API 级别 28)开始,禁用明文支持
默认情况下。* https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted
需要修改添加新文件res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">test.mosquitto.org</domain>
</domain-config>
</network-security-config>
然后修改你的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...>
...
</application>
</manifest>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)