Paho Mqtt Android 连接到代理失败,并显示 (32103)

2023-11-30

我的网络中有一个 ActiveMQ 代理正在监听 1883 (mqtt)。如果我使用简单的 Java 应用程序和 mqtt-client-0.4.0.jar 库连接到该代理,则一切正常。

现在我想使用 Android 设备连接到该经纪人。不幸的是我无法成功连接。我总是收到以下错误:

03-23 11:08:15.679 24572-24572/com.my.package E/WorkerMQTT: onFailure: Unable to connect to server (32103) - java.net.ConnectException: failed to connect to /192.192.192.10 (port 1883) after 30000ms: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.687 24572-24572/com.my.package W/System.err: Unable to connect to server (32103) - java.net.ConnectException: failed to connect to /192.192.192.10 (port 1883) after 30000ms: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err:     at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:79)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err:     at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:590)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err:     at java.lang.Thread.run(Thread.java:856)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err: Caused by: java.net.ConnectException: failed to connect to /192.192.192.10 (port 1883) after 30000ms: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at libcore.io.IoBridge.isConnected(IoBridge.java:224)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:112)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at java.net.Socket.connect(Socket.java:842)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:70)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     ... 2 more
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: Caused by: libcore.io.ErrnoException: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     at libcore.io.IoBridge.isConnected(IoBridge.java:208)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err:     ... 8 more

我正在使用 Android 服务,它调用MqttWorker extends Thread{.

我也使用库:

compile('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
      exclude module: 'support-v4'
}

按照我的工人的代码:

@Override
public void run() {
String clientId = "AndroidSub_7";

    try {
        this.client =
            new MqttAndroidClient(this.context, "tcp://192.192.192.10:1883", clientId);

        this.options = new MqttConnectOptions();
        this.options.setWill("clients/clienterrors", "crashed".getBytes(),2,true); // handle uncleanly closed subscribers

        this.client.setCallback(new ClientCallbacks()); // set new callbacks
        this.client.connect(options);

        IMqttToken conToken;

        conToken = client.connect(options, this.context, new IMqttActionListener() {
        @Override
        public void onSuccess(IMqttToken asyncActionToken) {
            Log.d(TAG, "onSuccess");
        }

        @Override
        public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
            Log.e(TAG, "onFailure: " + exception);
            exception.printStackTrace();
        }

        });
    } catch (MqttException e) {
        Log.e(TAG,"Connection to broker failed:" + e);
    }
}

到目前为止我尝试过的:

  1. 确保不使用环回地址(这里有很多线程都是关于这个的)
  2. 确保我在中设置了所需的权限AndroidManifest.xml WAKE_LOCK /INTERNET / WRITE_EXTERNAL_STORAGE / ACCESS_NETWORK_STATE
  3. 我创建了一个简单的线程类来检查是否可以使用连接到端口a socket。它成功了。
  4. 如果我使用的话没关系MqttAndroidClient or MqttClient。错误是一样的。

我希望有一个人可以帮助我。我已经没有办法解决这个问题了。


我使用的是真正的 Android 设备。 为了获取有关网络的更多信息,我通过以下方式连接到 Android 设备adb shell。从 ping 命令我得到以下信息From 192.192.192.1 icmp_seq=2 Destination Net Unreachable。奇怪的是,使用套接字测试它仍然有效。总的来说,我重新启动设备现在可以了。答案也许不是那么令人满意,但至少现在是有效的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Paho Mqtt Android 连接到代理失败,并显示 (32103) 的相关文章

随机推荐

  • 重写 JS 中的图像构造函数?

    是否可以覆盖ImageJS 中的构造函数 因此 例如 每次new Image 创建后 一条消息会写入控制台吗 尝试这个 function var OriginalImage window Image window Image functio
  • Cocoa:带有用于切换选项卡的工具栏图标的选项卡视图

    各种首选项对话框 Safari Mail Xcode4 和任何使用 NSPreferences 的对话框 和 Xcode4 的组织器使用让人想起选项卡视图的东西 只不过它使用工具栏按钮在选项卡之间切换 这些按钮被 按下 实现这种选项卡视图的
  • 到期时自动刷新 ASP.NET 输出缓存

    我有一些昂贵的页面 我使用 ASP NET 输出缓存进行缓存 如下所示 OutputCache Duration 3600 VaryByParam none 显然 缓存将在 3600 秒 1 小时 后过期 下一个碰巧加载该页面的可怜人将不得
  • Spring 与 Jackson ObjectMapper 和 Java 8 Time 集成 (JSR-310)

    我正在努力配置 Spring Integration DSL 转换器使用的 自定义 ObjectMapper 我收到一个java time Instant我想将其解析为对象属性的 json 表示形式 IE 类型 测试 来源 测试 时间戳 e
  • 重用缓存的 Spark RDD

    Spark 是否有可能在另一个应用程序中 或在同一应用程序的另一个运行中 重用缓存的 RDD JavaRDD
  • 如何从 Capistrano 运行 rake 任务?

    我已经有一个可以在生产服务器上部署我的应用程序的deploy rb 我的应用程序包含一个自定义 rake 任务 lib tasks 目录中的 rake 文件 我想创建一个 cap 任务来远程运行该 rake 任务 更明确一点 在你的 con
  • 发送 APN 返回 BadDeviceToken,DeviceToken 格式应该是什么?

    我的后端使用 Node js 和 Express js 使用npm apn包 它使用 Apple 的新提供商身份验证令牌 iOS应用程序获得许可并将收到的32字节设备令牌发送到后端 编码为base64字符串 但是 当尝试使用设备令牌 编码为
  • SpringMVC-FileUpload - 客户端发送的请求在语法上不正确

    我见过几个关于同一主题的 qt 但我没有发现这个错误的任何线索 我正在研究 POC 并点击下面的链接 http spring io guides gs uploading files 正如上面教程中提到的 在独立模式下 spring emb
  • Sort() 和 CompareTo() 方法的内部工作原理

    我一直在试图弄清楚如何CompareTo 方法在内部有效 但我失败了 我搜索过这个网站并阅读了一些帖子 我想我已经在 MSDN 上看到了关于这个主题的所有内容 但我似乎不明白 一个 MSDN 示例 public int CompareTo
  • Geckodriver Selenium 自动下载 PDF

    我正在尝试在 geckodriver Firefox 中自动下载 pdf 文件 我搜索了 stackoverflow 和其他资源 认为下面的代码应该可以工作 profile set preference browser download f
  • MySQL 连接器/C++ 错误访问崩溃

    在 Xcode 中使用 C 我尝试使用 MySQL Connector C 访问 MySQL 数据库 问题是程序 用 Xcode 编译 总是崩溃 EXC BAD ACCESS code 13 address 0x0 打电话时 driver
  • 如何将画布上的图片复制到剪贴板?

    我有一些 Tkinter 画布以及上面的一些线条和文本图片 有没有简单的方法将其复制到剪贴板 你可以使用 postscript画布的方法来获取内容的封装 PostScript EPS 表示形式 然后 使用 图像魔术师的 Python 绑定
  • 在打字稿中使用联合类型时属性不存在

    假设我有两个接口 interface Box x number y number and interface ColouredBox x number y number colour string 出于这个问题的目的 假设我无法更改接口 现
  • 在运行时更改谷歌地图 v3 中的光标

    The draggableCursor可以在创建时在 google maps Map 对象中设置选项 有什么方法可以在运行时设置此选项吗 或者还有其他干净的方法如何在运行时更改光标 我已经搜索过文档但没有什么比setDraggableCur
  • 使用 Google Cloud Storage 的 Apache Drill

    Apache Drill 功能列表提到它可以从 Google Cloud Storage 查询数据 但我找不到任何有关如何执行此操作的信息 我已经让它在 S3 上工作得很好 但我怀疑我在 Google 云存储方面错过了一些非常简单的东西 有
  • 在android studio上设置flutter错误

    为 android studio 设置 flutter 时出错 我试过 重复这个过程 删除android studio并重新启动 创建项目时出错 无法在 Flutter SDK Target 目录中创建项目 C src flutter pa
  • Facebook 使用 C# 使用 Graph API 检索数据

    我使用 c net 创建了桌面 Facebook 应用程序 我想检索用户的消息 帖子和聊天记录 这是检索用户所有信息的便捷方法 我已经开始使用 Facebook Graph API 但我没有得到任何示例 谁能帮我 聚会有点晚了 但无论如何
  • codeigniter - APPPATH 在控制器之后返回路径

    我在整理应用程序中的路径时遇到问题 我正在使用 APPPATH 函数在数据库中读取 写入图像的字符串路径 问题是 APPPATH 将函数放在控制器之后 这是我获取 css 的函数 当我去http localhost project inde
  • 使用 Process.Start() 时 Windows 窗体 MouseUp 触发两次

    在我的 Windows 窗体应用程序中 如果单击其中一项 我必须打开一个包含特定文件夹的新资源管理器窗口 我正在监听 MouseUp 事件 因为我已经有一些点击检测 我需要点击坐标 现在如果我打开一个新的资源管理器窗口 private vo
  • Paho Mqtt Android 连接到代理失败,并显示 (32103)

    我的网络中有一个 ActiveMQ 代理正在监听 1883 mqtt 如果我使用简单的 Java 应用程序和 mqtt client 0 4 0 jar 库连接到该代理 则一切正常 现在我想使用 Android 设备连接到该经纪人 不幸的是