【问题标题】:Cannot connect to MQTT broker with Eclipse Paho client无法使用 Eclipse Paho 客户端连接到 MQTT 代理
【发布时间】:2023-03-22 23:40:01
【问题描述】:

我可以使用 Python 绑定连接到我的 MQTT 代理,但我正在尝试使用 Java 重现相同的东西,似乎 SSH 握手成功,但在发送 MQTT 连接消息后没有响应。可能是什么原因?

我的代码:

package com.daniel.qa.common.services.mqtt;

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

import javax.net.ssl.*;
import java.net.Socket;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.logging.*;

public class MqttTest {


    public static void setDebugLevel(Level newLvl) {
        Logger rootLogger = LogManager.getLogManager().getLogger("");
        rootLogger.addHandler(new ConsoleHandler());
        Handler[] handlers = rootLogger.getHandlers();
        rootLogger.setLevel(newLvl);
        for (Handler h : handlers) {
            h.setLevel(newLvl);
        }
    }


    public static void main(String[] args) {

        setDebugLevel(Level.FINEST);

        String topic = "MQTT Examples";
        String content = "Message from MqttPublishSample";
        int qos = 1;
        String broker = "ssl://super-car.na.mqtt.daniel.com:8883";
        MemoryPersistence persistence = new MemoryPersistence();

        try {
            // Create a trust manager that does not validate certificate chains
            TrustManager[] trustAllCerts = new TrustManager[]{
                    new X509ExtendedTrustManager() {
                        @Override
                        public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
                        }

                        @Override
                        public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
                        }

                        @Override
                        public X509Certificate[] getAcceptedIssuers() {
                            return null;
                        }

                        @Override
                        public void checkClientTrusted(X509Certificate[] x509Certificates, String s, Socket socket) throws CertificateException {
                        }

                        @Override
                        public void checkServerTrusted(X509Certificate[] x509Certificates, String s, Socket socket) throws CertificateException {
                        }

                        @Override
                        public void checkClientTrusted(X509Certificate[] x509Certificates, String s, SSLEngine sslEngine) throws CertificateException {
                        }

                        @Override
                        public void checkServerTrusted(X509Certificate[] x509Certificates, String s, SSLEngine sslEngine) throws CertificateException {
                        }
                    }
            };

            // Install the all-trusting trust manager
            System.setProperty("jdk.tls.client.protocols", "TLSv1");
            SSLContext sc = SSLContext.getInstance("TLS");
            sc.init(null, trustAllCerts, new java.security.SecureRandom());

            MqttClient sampleClient = new MqttClient(broker, "pahoClientId", persistence);
            MqttConnectOptions connOpts = new MqttConnectOptions();
            connOpts.setCleanSession(true);
            connOpts.setSocketFactory(sc.getSocketFactory());
            System.out.println("Connecting to broker: " + broker);
            sampleClient.connect(connOpts);
            System.out.println("Connected");
            System.out.println("Publishing message: " + content);
            MqttMessage message = new MqttMessage(content.getBytes());
            message.setQos(qos);
            sampleClient.publish(topic, message);
            System.out.println("Message published");
            sampleClient.disconnect();
            System.out.println("Disconnected");
            System.exit(0);
        } catch (MqttException me) {
            System.out.println("reason " + me.getReasonCode());
            System.out.println("msg " + me.getMessage());
            System.out.println("loc " + me.getLocalizedMessage());
            System.out.println("cause " + me.getCause());
            System.out.println("excep " + me);
            me.printStackTrace();
        } catch (NoSuchAlgorithmException | KeyManagementException e) {
            e.printStackTrace();
        }
    }
}

最佳级别的日志:

2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient MqttAsyncClient FINE: pahoClientId: ClientID=pahoClientId ServerURI=ssl://super-car.na.mqtt.akamai.com:8883 PersistenceType=org.eclipse.paho.client.mqttv3.persist.MemoryPersistence@4d49af10 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient MqttAsyncClient FINE: pahoClientId: ClientID=pahoClientId ServerURI=ssl://super-car.na.mqtt.akamai.com:8883 PersistenceType=org.eclipse.paho.client.mqttv3.persist.MemoryPersistence@4d49af10 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore FINE: pahoClientId: 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore FINE: pahoClientId: 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.ClientState 更精细: pahoClientId:2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.ClientState 更精细: pahoClientId:2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.ClientState restoreState FINE: pahoClientId:> 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.ClientState restoreState FINE: pahoClientId: > 连接代理: ssl://super-car.na.mqtt.akamai.com:8883 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient 连接 FINE: pahoClientId: cleanSession=true connectionTimeout=30 TimekeepAlive=60 userName=null 密码=[null] will=[null] userContext=null 回调=null 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient 连接 FINE: pahoClientId: cleanSession=true connectionTimeout=30 TimekeepAlive=60 userName=null 密码=[null] will=[null] userContext=null 回调=null 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient createNetworkModules FINE: pahoClientId: URI=ssl://super-car.na.mqtt.akamai.com:8883 一月 2018 年 11 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient createNetworkModules 精细:pahoClientId: URI=ssl://super-car.na.mqtt.akamai.com:8883 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient createNetworkModule FINE: pahoClientId: URI=ssl://super-car.na.mqtt.akamai.com:8883 一月 2018 年 11 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient createNetworkModule FINE: pahoClientId: URI=ssl://super-car.na.mqtt.akamai.com:8883 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.MqttAsyncClient createNetworkModules FINE:pahoClientId: 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore 打开 FINE: pahoClientId:> 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.ClientComms connectBG:run FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.Token waitForCompletion FINE: pahoClientId: key=null 等待 max=-1 token=key=null ,topics= ,usercontext=org.eclipse.paho.client.mqttv3.MqttAsyncClient@5db45159 ,isComplete=false ,isNotified=false ,异常=null ,actioncallback=org.eclipse.paho.client.mqttv3.internal.ConnectActionListener@6107227e 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.ClientComms connectBG:run FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.Token waitForCompletion FINE: pahoClientId: key=null 等待 max=-1 token=key=null ,topics= ,usercontext=org.eclipse.paho.client.mqttv3.MqttAsyncClient@5db45159 ,isComplete=false ,isNotified=false ,异常=null ,actioncallback=org.eclipse.paho.client.mqttv3.internal.ConnectActionListener@6107227e 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore getOutstandingDelTokens FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.Token waitForResponse FINE: pahoClientId: >key=null timeout=-1 发送=false 完成=false hasException=false response=null token=key=null ,topics= ,usercontext=org.eclipse.paho.client.mqttv3.MqttAsyncClient@5db45159 ,isComplete=false ,isNotified=false ,异常=null ,actioncallback=org.eclipse.paho.client.mqttv3.internal.ConnectActionListener@6107227e 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore getOutstandingDelTokens FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.Token waitForResponse FINE: pahoClientId: >key=null timeout=-1 发送=false 完成=false hasException=false response=null token=key=null ,topics= ,usercontext=org.eclipse.paho.client.mqttv3.MqttAsyncClient@5db45159 ,isComplete=false ,isNotified=false ,异常=null ,actioncallback=org.eclipse.paho.client.mqttv3.internal.ConnectActionListener@6107227e 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.Token waitForResponse FINE:pahoClientId:key=null 等待 max=-1 2018 年 1 月 11 日 下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con message=CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.Token waitForResponse FINE: pahoClientId:key=null 等待最大值=-1 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con message=CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con 令牌=org.eclipse.paho.client.mqttv3.MqttToken@767dab68 2018 年 1 月 11 日 下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con 令牌=org.eclipse.paho.client.mqttv3.MqttToken@767dab68 2018 年 1 月 11 日 下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule 开始 FINE: pahoClientId: 连接到主机 super-car.na.mqtt.akamai.com 端口 8,883 超时 0 2018 年 1 月 11 日下午 5:16:26 org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule 启动 FINE: pahoClientId:连接主机 super-car.na.mqtt.akamai.com 8883端口 超时时间 0 2018 年 1 月 11 日下午 5:16:28 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 开始正常: pahoClientId:从 2018 年 1 月 11 日下午 5:16:28 开始 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 开始正常: pahoClientId:从 2018 年 1 月 11 日下午 5:16:28 开始 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 运行正常: pahoClientId:网络读取消息 2018 年 1 月 11 日下午 5:16:28 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 运行正常: pahoClientId:网络读取消息 2018 年 1 月 11 日下午 5:16:28 org.eclipse.paho.client.mqttv3.internal.ClientState 得到 FINE: pahoClientId:等待 60,000 毫秒,等待新工作或空间 机上窗口 2018 年 1 月 11 日下午 5:16:28 org.eclipse.paho.client.mqttv3.internal.ClientState 得到 FINE: pahoClientId:等待 60,000 毫秒,等待新工作或空间 机上窗口 2018 年 1 月 11 日下午 5:16:30 org.eclipse.paho.client.mqttv3.internal.ClientComms internalSend FINE: pahoClientId: internalSend key=Con message=CONNECT clientId pahoClientId keepAliveInterval 60 令牌=org.eclipse.paho.client.mqttv3.MqttToken@767dab68 2018 年 1 月 11 日 下午 5:16:30 org.eclipse.paho.client.mqttv3.internal.ClientComms internalSend FINE: pahoClientId: internalSend key=Con message=CONNECT clientId pahoClientId keepAliveInterval 60 令牌=org.eclipse.paho.client.mqttv3.MqttToken@767dab68 2018 年 1 月 11 日 下午 5:16:28 org.eclipse.paho.client.mqttv3.internal.CommsCallback 运行 FINE:pahoClientId:等待工作可用 2018 年 1 月 11 日下午 5:16:28 org.eclipse.paho.client.mqttv3.internal.CommsCallback 运行正常: pahoClientId:等待工作可用 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState 发送 FINE: pahoClientId: 等待发送键=0 消息 CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState 发送 FINE: pahoClientId: 等待发送键=0 消息 CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con message=CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con message=CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con 令牌=org.eclipse.paho.client.mqttv3.MqttToken@767dab68 2018 年 1 月 11 日 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore saveToken FINE: pahoClientId: key=Con 令牌=org.eclipse.paho.client.mqttv3.MqttToken@767dab68 2018 年 1 月 11 日 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsSender 运行 FINE: pahoClientId: 网络发送密钥=Con msg=CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsSender 运行正常: pahoClientId:网络发送键=Con msg=CONNECT clientId pahoClientId keepAliveInterval 60 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.wire.MqttOutputStream 写 罚款:空:500 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.wire.MqttOutputStream 写 罚款:空:500 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState notifySent FINE: pahoClientId:key=Con 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState notifySent FINE: pahoClientId:key=Con 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.Token notifySent FINE: pahoClientId:> key=Con 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.Token notifySent FINE: pahoClientId:> key=Con 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState 得到 FINE: pahoClientId:等待 60,000 毫秒,等待新工作或空间 机上窗口 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState 得到 FINE: pahoClientId:等待 60,000 毫秒,等待新工作或空间 机上窗口 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 运行正常: pahoClientId:因 IOException 而停止 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 运行正常: pahoClientId:因 IOException 而停止 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientComms shutdownConnection FINE:pahoClientId:state=DISCONNECTING 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientComms shutdownConnection FINE:pahoClientId:state=DISCONNECTING 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsCallback 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsCallback 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsCallback 停止 FINE: pahoClientId:通知 workAvailable 并等待运行 2018 年 1 月 11 日 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsCallback 停止 FINE:pahoClientId:通知 workAvailable 并等待运行 2018 年 1 月 11 日 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsCallback 运行 FINE:pahoClientId:通知空间可用 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsCallback 运行正常: pahoClientId:通知空间可用 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsCallback 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsCallback 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 停止 FINE: pahoClientId:2018 年 1 月 11 日下午 5:16:31 停止 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore 静默 FINE: pahoClientId: resp=Client 当前正在断开连接 (32102) 1 月 11 日, 2018 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore 静默 FINE: pahoClientId: resp=Client 当前正在断开连接 (32102) 1 月 11 日, 2018 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientComms handleOldTokens FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientComms handleOldTokens FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState resolveOldTokens FINE:pahoClientId:原因连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState resolveOldTokens FINE:pahoClientId:原因连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore getOutstandingTokens FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore getOutstandingTokens FINE:pahoClientId:> 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore removeToken FINE:pahoClientId:key=Con 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore removeToken FINE:pahoClientId:key=Con 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState 断开连接正常: pahoClientId:2018 年 1 月 11 日下午 5:16:31 断开连接 org.eclipse.paho.client.mqttv3.internal.ClientState 断开连接正常: pahoClientId:2018 年 1 月 11 日下午 5:16:31 断开连接 org.eclipse.paho.client.mqttv3.internal.ClientState clearState FINE: pahoClientId:> 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState clearState FINE: pahoClientId:> 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore 清除 FINE: pahoClientId:> 0 个令牌 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsTokenStore 清除 FINE: pahoClientId:> 0 个令牌 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsSender 停止 FINE: pahoClientId:停止发件人 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsSender 停止 FINE: pahoClientId:停止发件人 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState notifyQueueLock FINE:pahoClientId:通知 queueLock 持有者 2018 年 1 月 11 日 5:16:31 PM org.eclipse.paho.client.mqttv3.internal.ClientState notifyQueueLock FINE:pahoClientId:通知 queueLock 持有者 2018 年 1 月 11 日 5:16:31 PM org.eclipse.paho.client.mqttv3.internal.ClientState 得到 FINE: pahoClientId:没有未完成的流且未连接 2018 年 1 月 11 日 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.ClientState 得到 FINE:pahoClientId:1 月 11 日没有未完成的流且未连接, 2018 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsSender 运行 FINE:pahoClientId:获取消息返回 null,停止} 1 月 11 日, 2018 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsSender 运行 FINE:pahoClientId:获取消息返回 null,停止} 1 月 11 日, 2018 下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsSender 运行良好:pahoClientId:key=Con 响应=null 例外=连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.Token notifyComplete FINE: pahoClientId: >key=Con 响应=null 例外=连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsCallback fireActionEvent FINE: pahoClientId: call onSuccess key=Con Jan 11, 2018 5:16:31 PM org.eclipse.paho.client.mqttv3.internal.CommsCallback fireActionEvent FINE: pahoClientId: call onSuccess key=Con Jan 11, 2018 5:16:31 PM org.eclipse.paho.client.mqttv3.internal.Token 标记完成 FINE: pahoClientId: >key=null response=null excep=连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.Token 标记完成 FINE: pahoClientId: >key=null response=null excep=连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.Token notifyComplete FINE: pahoClientId: >key=null response=null excep=连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.Token notifyComplete FINE: pahoClientId: >key=null response=null excep=连接丢失 (32109) - java.io.EOFException 2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.CommsReceiver 运行正常: pahoClientId:

2018 年 1 月 11 日下午 5:16:31 org.eclipse.paho.client.mqttv3.internal.Token waitForResponse FINE:pahoClientId:因异常连接失败 丢失 (32109) - java.io.EOFException 在 org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:138) 在 java.lang.Thread.run(Thread.java:748) 引起: java.io.EOFException 在 java.io.DataInputStream.readByte(DataInputStream.java:267) 在 org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:56) 在 org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:100) ... 1 更多

连接丢失 (32109) - java.io.EOFException at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:138) 在 java.lang.Thread.run(Thread.java:748) 引起: java.io.EOFException 在 java.io.DataInputStream.readByte(DataInputStream.java:267) 在 org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMessage(MqttInputStream.java:56) 在 org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:100) ... 1 更多

进程以退出代码 0 结束

【问题讨论】:

    标签: java paho


    【解决方案1】:

    问题是 MQTT 版本 - 在第一个 Java 版本中,我有较旧的库 - mqtt-client 0.4.0 - 它具有 MQTT 3.1,并且代理不支持它,因此它在注意到它时终止 SSL 连接。当我切换到更新的版本(org.eclipse.paho.client.mqttv3 1.0.2,使用 MQTT 3.1.1)时,连接成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-19
      • 1970-01-01
      相关资源
      最近更新 更多