Java 通过反向代理的 Paho MQTT 客户端连接

Java Paho MQTT client connection over reverse proxy

我正在使用 Java paho 库与 mqtt 代理进行通信。使用下面的代码我可以正常连接。

MqttClient publisher = new MqttClient("tcp://192.168.1.100:1883","randomClientId");
MqttConnectOptions options = new MqttConnectOptions();
options.setAutomaticReconnect(true);
options.setCleanSession(true);
options.setConnectionTimeout(10);
publisher.connect(options);

但是,我有一个反向代理后面的mqtt代理,所以我不需要打开一个单独的端口。所以我需要做的不是连接到“tcp://192.168.1.100:1883”我想连接到“tcp://192.168.1.100/mqtt”。 但是,当我尝试这样做时,出现如下错误:

Exception in thread "main" java.lang.IllegalArgumentException: URI path must be empty "tcp://13.251.5.125/mqtt"

例如,我可以使用 python 中的库来很好地做到这一点,但是使用 Java 客户端我不确定该怎么做。

原生 MQTT 无法做到这一点。

使它起作用的唯一方法是在 Websockets 上使用 MQTT。在这种情况下,您需要传递如下所示的 URI:

ws://192.168.1.100/mqtt

注意它现在以 ws:// 而非 tcp://

开头