[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协议之订阅及发布(使用paho-mqtt-client或mqttv3实现)

另外一个MQTT发布订阅客户端paho-mqtt-client或mqttv3采用回调的方式实现消息的接收,下面看一下实现...
  • tianwei7518
  • tianwei7518
  • 2015年01月22日 11:35
  • 21340

[7] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之CONNACK消息分析

在上节中( [6] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之CONNECT消息格式分析)我们分析了CONNECT消息格式,我们知道CONNECT消息是客户端发送出...
  • chancein007
  • chancein007
  • 2015年06月14日 11:55
  • 2559

MQTT QoS

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

阿里___MQTT中协议QoS的实现

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

发布MQTT消息究竟有多快?

How fast can you publish MQTT messages? 现在许多的智能硬件应用都需要从传感器获得相应的数据,处理后把这些数据传递到后端。为了能够评估这些应用的性能,首先我们需...
  • yunba_io
  • yunba_io
  • 2015年08月24日 18:28
  • 1836

我的mqtt协议和emqttd开源项目个人理解(7) - Qos==2是如何保证消息只收到一次的

先来看图: Qos0消息发布订阅 Qos1消息发布订阅 Qos2消息发布订阅 只有QoS==1,2时候,才有Store(Msg)之说...
  • libaineu2004
  • libaineu2004
  • 2017年12月15日 15:53
  • 101

MQTT协议QoS2 准确一次送达的实现

MQTT QoS熟悉MQTT协议的同学们一定知道,MQTT的publish有三个QoS,0,1,2。他们分别是:QoS0,最多一次送达。也就是发出去就fire掉,没有后面的事情了。QoS1,至少一次送...
  • zerooffdate
  • zerooffdate
  • 2018年01月02日 13:04
  • 48

MQTT协议详解二

转载地址:http://www.xuebuyuan.com/1951013.html 下面我们开始一步步执行连接,订阅,发布和接收。 首先就是CONNECT,发送连接申...
  • tcjy1000
  • tcjy1000
  • 2017年03月11日 20:21
  • 654

两个QoS综合配置案例

许多读者朋友是一说到QoS就头痛,认为太难了。其实,虽然QoS的工作原理有些深奥,但QoS的配置还是比较简单的,只要你理解了各个关键参数的含义就没什么大问题了。本篇介绍的两个QoS配置案例介绍的是华为...
  • lycb_gz
  • lycb_gz
  • 2014年02月24日 08:50
  • 13269

管中窥豹:一线工程师看MQTT

MQTT是什么? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯...
  • rockjg0917
  • rockjg0917
  • 2017年12月07日 15:57
  • 67
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[10] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之Publication(消息发布)之QoS==0
举报原因:
原因补充:

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