如何在Java8中使用TLS-PSK和MQTT

如何在Java8中使用TLS-PSK和MQTT,mqtt,tls1.2,Mqtt,Tls1.2,我正在寻找在不使用任何证书的情况下使用MQTT和TLS-PSK的示例代码。我有一个psk身份和一把钥匙 这是我的样品,它不起作用 int qos = 1; String broker = "tcp://xxx.example.in:5633"; String clientId = "JavaExample"; String user = "my_identity"; (my psk identity) String pass = "6874e899071b909a2268b020ef9ff046

我正在寻找在不使用任何证书的情况下使用MQTT和TLS-PSK的示例代码。我有一个psk身份和一把钥匙

这是我的样品,它不起作用

int qos = 1;
String broker = "tcp://xxx.example.in:5633";
String clientId = "JavaExample";
String user = "my_identity"; (my psk identity)
String pass = "6874e899071b909a2268b020ef9ff046cydfernjn90546n546nklkj565"; (my psk key)
MemoryPersistence persistence = new MemoryPersistence();

    MqttAsyncClient sampleClient = new MqttAsyncClient(broker,clientId,persistence);
    sampleClient.setCallback(new SimpleMqttCallBack());
    MqttConnectOptions connOpts = new MqttConnectOptions(); 
    connOpts.setUserName(user);
    connOpts.setCleanSession(false);
    System.out.println("Connecting to broker: " + broker);


    SSLContext sslContext = SSLContext.getInstance("TLSv1.2");    
    sslContext.init(null,null,null);
    SSLSocketFactory socketFactory = sslContext.getSocketFactory();
    connOpts.setSocketFactory(socketFactory);   
    System.out.println("SSL Added");


    sampleClient.connect(connOpts);
    sampleClient.subscribe("#", qos);
如何将我的psk标识和密钥与TLS1.2和MQTT连接起来?

也许这个答案有帮助:

您可以将自定义SSLSocketFactory传递给使用bouncy castle进行TLS-PSK的paho MQTT客户端。

也许这个答案有帮助:

您可以将自定义SSLSocketFactory传递给使用bouncy castle执行TLS-PSK的paho MQTT客户机