Mqtt, java 服务端推送

 1 package web;
 2 
 3 import org.eclipse.paho.client.mqttv3.MqttClient;
 4 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
 5 import org.eclipse.paho.client.mqttv3.MqttDeliveryToken;
 6 import org.eclipse.paho.client.mqttv3.MqttException;
 7 import org.eclipse.paho.client.mqttv3.MqttMessage;
 8 import org.eclipse.paho.client.mqttv3.MqttPersistenceException;
 9 import org.eclipse.paho.client.mqttv3.MqttTopic;
10 import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
11 
12 public class Server {
13     public static final String HOST = "tcp://121.201.45.157:61613";
14     public static final String TOPIC = "queuing/queuechange";
15     private static final String clientid = "server";
16 
17     private MqttClient client;
18     private MqttTopic topic;
19     private String userName = "test";
20     private String passWord = "123456";
21 
22     private MqttMessage message;
23 
24     public Server() throws MqttException {
25         // MemoryPersistence设置clientid的保存形式,默认为以内存保存
26         client = new MqttClient(HOST, clientid, new MemoryPersistence());
27         connect();
28     }
29 
30     private void connect() {
31         MqttConnectOptions options = new MqttConnectOptions();
32         options.setCleanSession(false);
33         options.setUserName(userName);
34         options.setPassword(passWord.toCharArray());
35         // 设置超时时间
36         options.setConnectionTimeout(10);
37         // 设置会话心跳时间
38         options.setKeepAliveInterval(20);
39         try {
40 //            client.setCallback(new PushCallback());
41             client.connect(options);
42             topic = client.getTopic(TOPIC);
43         } catch (Exception e) {
44             e.printStackTrace();
45         }
46     }
47 
48     public void publish(MqttTopic topic, MqttMessage message) throws MqttPersistenceException, MqttException {
49         MqttDeliveryToken token = topic.publish(message);
50         token.waitForCompletion();
51         System.out.println("message is published completely! " + token.isComplete());
52     }
53 
54     public static void main(String[] args) throws MqttException {
55         Server server = new Server();
56 
57         server.message = new MqttMessage();
58         server.message.setQos(2);
59         server.message.setRetained(true);
60         server.message.setPayload("给客户端推送的信息".getBytes());
61         server.publish(server.topic, server.message);
62 
63         System.out.println(server.message.isRetained() + "------ratained状态");
64     }
65 
66 }

 

posted @ 2017-05-20 15:57  26个字符的地狱  阅读(789)  评论(0)    收藏  举报