java和mqtt的那些事(一)
2017-10-18 17:54
309 查看
如果使用java代码和mqtt进行连接话需要引入jar包,pom.xml文件中如下所示:
在paho中发布消息和订阅主题都是通过MqttClient类来实现的:
org.eclipse.paho.client.mqttv3
java.lang.Object
org.eclipse.paho.client.mqttv3.MqttClient
All Implemented Interfaces:IMqttClient实例化这种类有两种方法,其实只有一种方法那就是:
聪明的你就会发下真的是一种方法不过第二种只是默认的创建了MqttDefaultFilePersistence这个类的实例对象,这个类对象呢又是MqttClientPersistence类的子类总之差不多。那么这个类又是干什么的呢,它是用来存储信息的,总的来说不管是客户端还是服务端发送信息的时候都需要先把信息存储起来,因为不存储起来在传递过程中可能会出现丢失和失败,而这个类就是用来存储信息使得发送信息更加可靠。之后对于服务端就是直接连接了。而对于客户端还需要如下操作:
创建:MqttConnectOptions这个类对象了,为什么呢?因为这个类对象是用来保存你对连接的设置选项的,有什么用户账号和密码,是否清楚Session,是否自动连接,连接超时的时长等等。
然后设置回掉函数类,回掉函数是主题发布消息的时候,客户端这边会使用到的类,这个类需要实现MqttCallback,然后实现三个方法
<dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.1.0</version> </dependency>
在paho中发布消息和订阅主题都是通过MqttClient类来实现的:
org.eclipse.paho.client.mqttv3
Class MqttClient
java.lang.Objectorg.eclipse.paho.client.mqttv3.MqttClient
All Implemented Interfaces:IMqttClient实例化这种类有两种方法,其实只有一种方法那就是:
public MqttClient(String serverURI, String clientId, MqttClientPersistence persistence) throws MqttException { aClient = new MqttAsyncClient(serverURI, clientId, persistence); }
public MqttClient(String serverURI, String clientId) throws MqttException { this(serverURI,clientId, new MqttDefaultFilePersistence()); }
聪明的你就会发下真的是一种方法不过第二种只是默认的创建了MqttDefaultFilePersistence这个类的实例对象,这个类对象呢又是MqttClientPersistence类的子类总之差不多。那么这个类又是干什么的呢,它是用来存储信息的,总的来说不管是客户端还是服务端发送信息的时候都需要先把信息存储起来,因为不存储起来在传递过程中可能会出现丢失和失败,而这个类就是用来存储信息使得发送信息更加可靠。之后对于服务端就是直接连接了。而对于客户端还需要如下操作:
创建:MqttConnectOptions这个类对象了,为什么呢?因为这个类对象是用来保存你对连接的设置选项的,有什么用户账号和密码,是否清楚Session,是否自动连接,连接超时的时长等等。
MqttConnectOptions options = new MqttConnectOptions();
然后设置回掉函数类,回掉函数是主题发布消息的时候,客户端这边会使用到的类,这个类需要实现MqttCallback,然后实现三个方法
public void connectionLost(Throwable cause)
public void deliveryComplete(IMqttDeliveryToken token)
public void messageArrived(String topic, MqttMessage message) throws Exception
相关文章推荐
- HTTPS那些事 用java实现HTTPS工作原理
- Java多线程编程那些事:volatile解惑
- mac下配置java环境变量那些事
- Java TCPIP 编程 那些事 ServerSocket (一)
- java那些事(八)之深入理解java异常处理机制
- java--图片和BYTE数组的那些事
- java那些事
- Java回调~mqtt回调处理中的问题
- Java那些事之Log4j
- zZ Java中String和Byte[]之间的那些事
- MAC JAVA 环境变量那些事
- Java最困扰你的那些事
- java多线程那些事之中的一个
- Java Thread 那些事
- MQTT客户端JAVA代码----fusesource mqtt-client
- java MQTT 客户端问题
- MQTT——java简单测试(二)
- Java日志性能那些事
- 【开源】MQTT推送服务器——zer0MqttServer(Java编写)
- Java面试那些事--可能会问的那些问题(中高级篇)