-
-
前言
Apache Apollo是一个代理服务器,其是在ActiveMQ基础上发展而来的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多种协议。有关Apollo的搭建问题,参阅上一篇部落格。
-
正文
废话不多言,直接撸代码,先去maven的官网引入mqtt的第三方支持包。
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
Demo结构:
![]() |
服务端的代码:
package com.example.demo.mqtt.server;
import com.example.demo.mqtt.PushCallback;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by pengcheng.du on 2018/10/12.com.example.demo.mqtt.server.Server
*/
/*服务器端向客户端推送不同的主题*/
public class Server {
public static final String SERVER_URL = "tcp://0.0.0.0:61613";
public static List<String> TOPICList = new ArrayList<>(Arrays.asList("wether","car","topic"));
public static String clientid;
private MqttClient mqttClient;
public MqttTopic mqttTopic1;
private MqttTopic getMqttTopic2;
private String username = "admin";
private String password = "password";
private MqttMessage mqttMessage;
/*//创建新的topic链接的时候使用此构造方法
public Server() throws Exception{
mqttClient = new MqttClient(SERVER_URL, clientid, new MemoryPersistence());
Server server = new Server();
server.mqttMessage = new MqttMe