[10] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之Publication(消息发布)之QoS==0

原创 2016年07月05日 00:23:04

在MQTT协议中,消息的发布相对来说比较复杂一些,因为里面牵涉到了QoS(服务质量)和Retained(是否正服务器端存储消息)已经Persistence(当网络故障,在本地客户端存储信息)。其中最为灵活的是QoS的取值,QoS取不同值,就有不同的消息流,也就对应不同了消息类型。首先咱们来讨论QoS等于0的情况。QoS等于0意味着只发送一次,而不管接收方是否收到。

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;


import com.test.mqtt.sub.CustomMQTTCallBack;


public class PublicationExample4QoS0 {


	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//System.setProperty("java.util.logging.config.file","E:/MQTTWork/ExcelDesignTime/com.tibco.tpcl.mqttpaho/resources/logging.properties");
        String broker = "tcp://192.168.80.196:1883" ;
        String clientId = "paho-1" ;
        MemoryPersistence persistence = new MemoryPersistence();
         try {
                MqttClient sampleClient = new MqttClient(broker, clientId,persistence);
                MqttConnectOptions connOpts = new MqttConnectOptions();
                //connOpts.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1);
                System. out .println("The MQTT Version is:"+connOpts.getMqttVersion());
                connOpts.setCleanSession( false );
                System. out .println( "Connecting to broker: " + broker);
                sampleClient.connect(connOpts);
                System. out .println( "Connected" );
                sampleClient.setCallback(new CustomMQTTCallBack());
                MqttMessage message=new MqttMessage();
                message.setPayload("HelloWorld!".getBytes());
                message.setQos(0);
                message.setRetained(true);
                sampleClient.publish("test",message);
       
        } catch (MqttException me) {
                System. out .println( "reason " + me.getReasonCode());
                System. out .println( "msg " + me.getMessage());
                System. out .println( "loc " + me.getLocalizedMessage());
                System. out .println( "cause " + me.getCause());
                System. out .println( "excep " + me);
                me.printStackTrace();
        }


	}


}





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mqtt 异步消息 长连接 解析

mqtt 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放,简单,轻量级,且易于实现,这些优点使得他受用于任何环境 该协议的特点有:  使用发布/订阅消息的模式,提供一对多的消息发布,解除应...
  • axuanqq
  • axuanqq
  • 2016年07月13日 14:09
  • 7060

[5] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之CONNECT消息格式分析

在“[3] MQTT,mosquitto,Eclipse Paho---如何使用 Eclipse Paho MQTT工具来发送订阅MQTT消息?”一文中我已经和大家简单讲述了如何使用Eclipse P...

MQTT协议之订阅及发布(使用paho-mqtt-client或mqttv3实现)

另外一个MQTT发布订阅客户端paho-mqtt-client或mqttv3采用回调的方式实现消息的接收,下面看一下实现...

MQTT Protocol Manual(Apollo中MQTT协议解析)

官网英文参考:http://activemq.apache.org/apollo/documentation/mqtt-manual.html  MQTT协议 Apollo允许客户...

阿里___MQTT中协议QoS的实现

项目中用到了MQTT,由于MQTT中支持QoS,服务质量保证,在阿里面试的时候,问到如何设计QoS,一时糊涂,没有完全回答出来。 特点 MQTT - MQ Telemetry Transp...

MQTT协议之websocket方式发布接收消息

ActiveMQ支持MQTT协议并且在JMS和MQTT客户端之间自动进行消息转换。

MQTT C Client实现消息推送(入门指南)

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,通过MQTT协议,目前已经扩展出了数十个MQTT服务器端程序,可以通...

MQTT QoS

原文MQTT V3.1 Protocol Specification译文(摘取一部分)MQTT根据QoS定义的等级来传输消息。等级描述如下:level 0:最多一次的传输消息是基于TCP/IP网络传输...

[2] UI原型设计工具Pencil Project 学习系列----- 入门

在上一篇文章,笔者提到了一个开源免费的超级强大的UI原型设计工具---Pencil Project,那么该如何使用这个软件呢?下面让笔者来分享一下简单的心得。本文以Window操作系统为例子。@ 打开...

[1] UI原型设计工具Pencil Project 学习系列----- 为什么选择

笔者最近在设计一个项目的UI原型,这个项目是一个Web项目。 于是考察了市面上比较流行的工具。当前市面上比较流行的20个 UI原型设计。这么多工具,那该如何选择呢 ? 我的原则如下: #1 必须是开源...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[10] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之Publication(消息发布)之QoS==0
举报原因:
原因补充:

(最多只允许输入30个字)