给出一个百度云开放平台的Java客户端示例代码,进行了一点点修改
以上一篇写的文章中的websocket客户端为发布者。订阅者我们用百度的示例Java程序
订阅者的客户端代码如下:
package com.mymqtt.baidu;
import java.security.KeyStore;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
public class Client {
public static void main(String[] args) throws Exception {
String endpoint = "ssl://gwcheng.mqtt.iot.gz.baidubce.com:1884"; //输入创建endpoint返回的地址
String username = "gwcheng/mything1"; //输入创建thing返回的username
String password = "H0aUPreSnca3NslTft+oHjwgZEMjZPOfNBgXnb2F+6o="; //输入创建principal返回的password
String topic = "helloTopic"; //订阅的消息主题,本例是指订阅helloTopic
TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init((KeyStore)null);
TrustManager[] trustManagers = tmf.getTrustManagers();
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, trustManagers, null);
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(true);
options.setUserName(username);
options.setPassword(password.toCharArray());
options.setSocketFactory(ctx.getSocketFactory());
MqttClient client = new MqttClient(endpoint, topic);
client.connect(options);
client.setCallback(new PushCallback());
// 为了不让程序退出,一直处于接收消息阶段。
while(true){
client.subscribe(topic,2);;
}
// client.disconnect();
}
}
好了,运行我们的websocket和Java程序