MQTTプロトコルのサブスクリプション・パブリケーション・モードを使用して、サーバからクライアントにメッセージをプッシュする機能を実現します.

2216 ワード

1、        Apollo           ,        :
https://blog.csdn.net/marrn/article/details/71141122?utm_source=itdadao&utm_medium=referral
2、PC   java  ,  MQTT        ,          ,    ;

3、携帯端末は同じ接続テーマパラメータを設定し、メッセージを購読する.
キーコード:
PC端末
//サーバポートアカウントパスワードprivate String host="tcp://127.0.0.1:61613"; private String userName = "admin"; private String passWord = "123";
//クライアント・オブジェクト、トピック、パブリッシュ・メッセージ、共通トピック
private MqttClient client;
private MqttTopic topic;
private MqttMessage message;
private String myTopic = "test/topic";
//クライアントクライアントクライアントの作成=new MqttClient(host,“Server”,new MemoryPersistence()
private void connect() {
//接続パラメータの設定
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(false);
options.setUserName(userName);
options.setPassword(passWord.toCharArray());
//タイムアウト時間の設定
options.setConnectionTimeout(10);
//会話のドキドキ時間の設定
options.setKeepAliveInterval(20);
try {
//クライアントリターンの設定
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
System.out.println("connectionLost-----------");
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("deliveryComplete---------"
+ token.isComplete());
}
@Override
public void messageArrived(String topic, MqttMessage arg1)
throws Exception {
System.out.println("messageArrived----------");
}
});
topic = client.getTopic(myTopic);
System.out.println("------topic="+ topic.toString());
message = new MqttMessage();
message.setQos(1);
message.setRetained(true);
System.out.println("------ratained状態"+message.isRetained();
message.setPayload("msg-hnac".getBytes());
//接続
client.connect(options);
} catch (Exception e) {
e.printStackTrace();
}
}
携帯電話端末も同様で、同じIPとポートを配置し、接続パラメータを設定した後、購読する必要があります.
//テーマ購読
            client.subscribe(PushConfig.myTopic, 1);
そしてPC側delivery後、携帯電話側arrivedは、プッシュ受信機能を実現する.