首页 > 解决方案 > 通过 IPv6 的 MQTT 通信在 Java 中不起作用

问题描述

我正在运行一个通过 mqtt 通信的 java 应用程序。我能够使用 IPv4 地址进行通信,但在尝试使用 IPv6 地址进行通信时遇到问题。

我已将路由器配置为提供 IPv6 地址。当我将笔记本电脑连接到路由器时,我能够获得 IPv6 地址。当我为 localhost 运行代码时,它工作正常。

下面是我用来在 IPv6 上运行 localhost 代码的代理,它运行良好。

String broker = "tcp://::1:1883";

但是当我尝试连接到同一网络上另一台设备的 IP 地址时,出现错误。

String broker = "tcp://[fe80::54d0:e4dd:96f4:98ca%wlx9cd643864a24]:1883";

我也尝试过没有如下给出的接口名称。但得到同样的错误。

String broker = "tcp://[fe80::54d0:e4dd:96f4:98ca]:1883";

错误:

Connecting to broker: tcp://[fe80::54d0:e4dd:96f4:98ca%wlx9cd643864a24]:1883 reason 0 msg MqttException loc MqttException 
cause java.net.UnknownHostException: [fe80 excep MqttException (0) - java.net.UnknownHostException: [fe80 MqttException (0) - java.net.UnknownHostException: [fe80 
at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38) 
at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:664) at java.lang.Thread.run(Unknown Source)

标签: javamqttipv6

解决方案


推荐阅读