MQTT的学习研究(十三) IBM MQTTV3 简单发布订阅实例
使用IBM MQTTv3实现相关的发布订阅功能
MQTTv3的发布消息的实现:
- package com.etrip.mqttv3;
- import com.ibm.micro.client.mqttv3.MqttClient;
- import com.ibm.micro.client.mqttv3.MqttDeliveryToken;
- import com.ibm.micro.client.mqttv3.MqttMessage;
- import com.ibm.micro.client.mqttv3.MqttTopic;
- /**
- * MQTTV3的发布消息类
- *
- * @author longgangbai
- */
- public class MQTTPub {
- public static void doTest(){
- try {
- MqttClient client = new MqttClient("tcp://192.168.208.46:1883","mqttserver-pub");
- MqttTopic topic = client.getTopic("tokudu/china");
- MqttMessage message = new MqttMessage("Hello World. Hello IBM".getBytes());
- message.setQos(1);
- client.connect();
- while(true){
- MqttDeliveryToken token = topic.publish(message);
- while (!token.isComplete()){
- token.waitForCompletion(1000);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
MQTTV3的订阅消息类
- package com.etrip.mqttv3;
- import com.ibm.micro.client.mqttv3.MqttClient;
- import com.ibm.micro.client.mqttv3.MqttConnectOptions;
- /**
- * MQTTV3的订阅消息类
- *
- * @author longgangbai
- */
- public class MQTTSubsribe {
- public static String doTest() {
- try {
- //创建MqttClient
- MqttClient client = new MqttClient("tcp://192.168.208.46:1883", "java_client0000000000");
- //回调处理类
- CallBack callback = new CallBack();
- client.setCallback(callback);
- //创建连接可选项信息
- MqttConnectOptions conOptions = new MqttConnectOptions();
- //
- conOptions.setCleanSession(false);
- //连接broker
- client.connect(conOptions);
- //发布相关的订阅
- client.subscribe("tokudu/china", 1);
- //client.disconnect();
- } catch (Exception e) {
- e.printStackTrace();
- return "failed";
- }
- return "success";
- }
- }
回调处理类处理订阅的消息类
- package com.etrip.mqttv3;
- import com.ibm.micro.client.mqttv3.MqttCallback;
- import com.ibm.micro.client.mqttv3.MqttDeliveryToken;
- import com.ibm.micro.client.mqttv3.MqttMessage;
- import com.ibm.micro.client.mqttv3.MqttTopic;
- /**
- * 回调处理类
- * 处理订阅的消息类
- *
- * @author longgangbai
- */
- public class CallBack implements MqttCallback {
- public CallBack() {
- }
- /**
- * 接收到信息的处理
- */
- public void messageArrived(MqttTopic topic, MqttMessage message) {
- try {
- System.out.println(" MQTTSubsribe message.toString()"+message.toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void connectionLost(Throwable cause) {
- }
- public void deliveryComplete(MqttDeliveryToken token) {
- }
- }
测试类:
- package com.etrip.mqttv3;
- /**
- * MQTTV3的测试类
- *
- * @author longgangbai
- */
- public class MQTTMain {
- public static void main(String[] args) {
- //订阅消息的方法
- MQTTSubsribe.doTest();
- //发布消息的类
- MQTTPub.doTest();
- }
- }
MQTT的学习研究(十三) IBM MQTTV3 简单发布订阅实例的更多相关文章
- MQTT的学习研究(十一) IBM MQTT 简单发布订阅实例
package com.etrip.push; import com.ibm.mqtt.MqttAdvancedCallback; import com.ibm.mqtt.MqttClient; im ...
- RabbitMQ学习总结 第四篇:发布/订阅 Publish/Subscribe
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- MQTT的学习研究(十)【转】mosquitto——一个开源的mqtt代理
MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽.不可靠或间歇性的通信.值得一提的是mqtt提供三种不同 ...
- MQTT协议学习研究 & Mosquitto简要教程(安装和使用)
若初次接触MQTT协议,可先理解以下概念: [MQTT协议特点]——相比于RESTful架构的物联网系统,MQTT协议借助消息推送功能,可以更好地实现远程控制. [MQTT协议角色]——在RESTfu ...
- MQTT的学习研究(十四) MQTT moquette 的 Callback API 消息发布订阅的实现
在moquette-mqtt中提供了回调callback模式的发布和订阅但是在订阅之后没有发现有消息接收的方法,参看moquette-mqtt中Block,Future式的发布订阅基础是callbac ...
- MQTT的学习研究(三)moquette-mqtt 的使用之mqtt服务发布主题信息
接着上一篇的moquette-mqtt 的使用之broker启动之后,我们需要启动moquette-mqtt 的服务端发布消息. 在moquette-mqtt 的mqtt-client中三种方式实现发 ...
- MQTT的学习研究(二)moquette-mqtt 的使用之mqtt broker的启动
在MQTT 官网 (http://mqtt.org/software)中有众多MQTT的实现方式.具体参看官网,Moquette是基于Apache Mina 的模型的一个Java MQTT broke ...
- MQTT的学习研究(八)基于HTTP DELETE MQTT 订阅消息服务端使用
HTTP DELETE 订阅主题请求协议和响应协议http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau ...
- MQTT的学习研究(六) MQTT moquette 的 Blocking API 订阅消息客户端使用
* 使用 Java 为 MQ Telemetry Transport 创建订户 * 在此任务中,您将遵循教程来创建订户应用程序.订户将针对主题创建预订并接收该预订的发布. * 提供了一个示例订户应用程 ...
随机推荐
- 核心交换机各项配置 Vlan划分、互访、ACL管控、链路聚合等
#!Software Version V200R001C00SPC300sysname IT_ServerRoom #交换机名称##vlan batch 10 20 30 40 50 60 70 8 ...
- Yarn NodeManager restart
一.介绍默认Yarn NodeManager重启后会断开所有当前正在运行的container的状态,这意味着重启后需要重新启动container进程,该特性的作用就是把NM的状态临时保存到本地,重启后 ...
- springboot集成AOP管理日志
如何将所有的通过url的请求参数以及返回结果都输出到日志中? 如果在controller的类中每个方法名都写一个log输出肯定是不明智的选择. 使用spring的AOP功能即可完成. 1. 在pom. ...
- EasyUi---searchbox 条件查询
前台UI参考代码: <script type="text/javascript" charset="utf-8"> $(function(){ /* ...
- EasyUI项目中的自定义JS
自定义方法: (function($) { $.extend($, { //获取下标,删除时使用 getArrayIndex : function (array,value) { var index ...
- Convolution Network及其变种(反卷积、扩展卷积、因果卷积、图卷积)
今天,主要和大家分享一下最近研究的卷积网络和它的一些变种. 首先,介绍一下基础的卷积网络. 通过PPT上的这个经典的动态图片可以很好的理解卷积的过程.图中蓝色的大矩阵是我们的输入,黄色的小矩阵是卷积核 ...
- IE屏蔽鼠标右键、禁止复制粘贴等功能
<body oncontextmenu="return false" onselectstart="return false" ondragstart=& ...
- 【转】【OPenGL】OPenGL 画图板-- 中点算法画圆
为了能以任意点为圆心画圆,我们可以把圆心先设为视点(相当于于将其平移到坐标原点),然后通过中点法扫描转换后,再恢复原来的视点(相当于将圆心平移回原来的位置). 圆心位于原点的圆有四条对称轴x=0,y= ...
- CentOS 6.5 下Vim 配置图解
分享个CentOS 6.5 下Vim 配置图文详解,希望对大家有所帮助. 1. 登录并进入你常用的用户名下,查看其主目录 命令: # su xxx $ cd xxx $ ls -a 2.查看并建立目录 ...
- memcached +mysql+php 例子
<?php header("content-type:text/html;charset=utf-8"); $memcachehost = '127.0.0.1'; $mem ...