如何采用MQTT协议实现android消息推送

来自:    更新日期:早些时候
~ MQTT协议实现android消息推送,我想每个Android开发人员对它应该都是比较熟悉的。  MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:网络代价昂贵,带宽低、不可靠。在嵌入设备中运行,处理器和内存资源有限。该协议的特点有:使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。对负载内容屏蔽的消息传输。 使用 TCP/IP 提供网络连接。有三种消息发布服务质量:“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制MQTT最简单的使用包括两种,一种是发消息,一种是订阅消息。 发消息就是向一个固定IP地址的某个主题发送消息(publish)订阅消息是向服务器端订阅某些主题,当其他客户端向服务器的这个主题广播消息时,那么所有订阅这个主题的客户端就都能收到了MQTT是一项消息传递技术,由IBM再2001年发布。总结一下,机制就是使用一个代理服务器message broker,客户端client连接上这个服务器,然后告诉服务器说,我可以接收哪些类型的消息,同时,client也可以发布自己的消息,这些消息根据协议的内容,可以被其他client获取。只要手机客户端,连上服务器,然后就可以接收和发布消息了,不用自己写socket什么了,低带宽,低耗电量,代码量也少,很简单吧。 package com.pig.test.mqtt;002003 import com.ibm.mqtt.MqttClient;004 import com.ibm.mqtt.MqttException;005 import com.ibm.mqtt.MqttSimpleCallback;006007 public class SubscribeClient {008 private final static String CONNECTION_STRING = "tcp://192.168.1.60:1883";009 private final static boolean CLEAN_START = true;010 private final static short KEEP_ALIVE = 30;//低耗网络,但是又需要及时获取数据,心跳30s011 private final static String CLIENT_ID = "client1";012 private final static String[] TOPICS = {013 "Test/TestTopics/Topic1",014 "Test/TestTopics/Topic2",015 "Test/TestTopics/Topic3",016 "tokudu/client1"017 };018 private final static int[] QOS_VALUES = {0, 0, 2, 0};019020 //////////////////021 private MqttClient mqttClient = null;022023 public SubscribeClient(String i){024 try {025 mqttClient = new MqttClient(CONNECTION_STRING);026 SimpleCallbackHandler simpleCallbackHandler = new SimpleCallbackHandler();027 mqttClient.registerSimpleHandler(simpleCallbackHandler);//注册接收消息方法028 mqttClient.connect(CLIENT_ID+i, CLEAN_START, KEEP_ALIVE);029 mqttClient.subscribe(TOPICS, QOS_VALUES);//订阅接主题030031 /**032 * 完成订阅后,可以增加心跳,保持网络通畅,也可以发布自己的消息033 */034035 mqttClient.publish(PUBLISH_TOPICS, "keepalive".getBytes(), QOS_VALUES[0], true);036037 } catch (MqttException e) {038 // TODO Auto-generated catch block039 e.printStackTrace();040 }041 }042043 /**044 * 简单回调函数,处理client接收到的主题消息045 * @author pig046 *047 */048 class SimpleCallbackHandler implements MqttSimpleCallback{ 049050 /**051 * 当客户机和broker意外断开时触发052 * 可以再此处理重新订阅053 */054 @Override055 public void connectionLost() throws Exception {056 // TODO Auto-generated method stub057 System.out.println("客户机和broker已经断开");058 }059060 /**061 * 客户端订阅消息后,该方法负责回调接收处理消息062 */063 @Override064 public void publishArrived(String topicName, byte[] payload, int Qos, booleanretained) throws Exception {065 // TODO Auto-generated method stub066 System.out.println("订阅主题: " + topicName);067 System.out.println("消息数据: " + new String(payload));068 System.out.println("消息级别(0,1,2): " + Qos);069 System.out.println("是否是实时发送的消息(false=实时,true=服务器上保留的最后消息): " + retained);070 }071072 }073074 /**075 * 高级回调076 * @author pig077 *078 */079 class AdvancedCallbackHandler implements MqttSimpleCallback{080081 @Override082 public void connectionLost() throws Exception {083 // TODO Auto-generated method stub084085 }086087 @Override088 public void publishArrived(String arg0, byte[] arg1, int arg2,089 boolean arg3) throws Exception {090 // TODO Auto-generated method stub091092 }093094 }095096 /**097 * @param args098 */099 public static void main(String[] args) {100 // TODO Auto-generated method stub101 new SubscribeClient("" + i);102103 }104105 }


如何采用MQTT协议实现android消息推送视频

相关评论:
  • 19617851802万物互联 MQTT协议原理与数据包结构
    茹卓鸣协议中的QoS机制确保了消息的可靠传输,分为0、1、2三个等级。遗愿消息(Will Message)则在客户端意外断开时由服务器发送。固定头的长度设计使得MQTT支持高效传输,理论上一次连接可传输大量数据。总的来说,MQTT协议的实现涉及连接管理、消息传递和数据组织等多个环节,适用于对低带宽和实时性要求较高的...

  • 19617851802一文读懂物联网 MQTT 协议之实战篇
    茹卓鸣一、前言 本文将带你实践 MQTT 协议,理论结合实践,掌握 MQTT 实战应用。我们将讲解 Mosquitto,一款开源消息代理软件,支持发布\/订阅的消息推送模式,简化设备间的短消息通信。二、搭建准备 1.1 版本与下载:使用 Mosquitto 1.4.4 版本,从官网获取安装包。1.2 CentOS 7.8.2003 环境。1.3 安装...

  • 19617851802如何实现消息推送功能
    茹卓鸣消息推送(Push)就是通过服务器把内容主动发送到客户端的过程。运营人员通过自己的产品或第三方工具对用户移动设备进行主动消息推送。完成推送后,消息通知会展示在移动设备的锁定屏幕及通知栏上,用户点击通知即可去往相应页面。现在流行的消息推送实现方式,主要为长链接方式实现。其原理是客户端主动和服务器...

  • 19617851802在.NET7中使用MQTTnet简单实现MQTT通信
    茹卓鸣三、在.NET7中使用MQTTnet 1、项目准备 创建.NET7控制台项目,一个用于服务端,一个用于客户端。安装MQTTnet包(推荐版本3.12),可通过Nuget包管理器或命令行安装。2、服务端代码编写 编写服务端代码,实现代理服务器功能。3、客户端代码编写 编写客户端代码,实现消息发布和订阅功能。通过以上步骤,...

  • 19617851802Android中消息推送有哪几种方式?
    茹卓鸣消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。关于消息推送的方式也可以使用第三方平台来帮助实现,然而极光就是一...

  • 19617851802「教程」如何使用OneNET平台的MQTT功能
    茹卓鸣如何使用OneNET平台的MQTT功能实现设备间通信轻量级的MQTT协议在物联网设备间的数据传输和控制中扮演重要角色。通过本教程,我们将指导您如何在OneNET平台上设置并利用MQTT功能。首先,从注册和实名认证开始:在OneNET官网完成账号注册和实名认证,具体步骤请参照官网指南。接着,登录控制台并设置MQTT服务:进入物...

  • 19617851802如何在 Java 中使用 MQTT
    茹卓鸣MQTT,作为物联网消息传输协议,凭借其轻量级、易于实现、支持QoS以及报文小的特点,在物联网领域广泛应用。本文旨在教授如何在Java项目中使用MQTT,具体涉及连接、订阅与消息收发等关键步骤。为了实现这一目标,本文将使用Eclipse Paho Java Client作为MQTT客户端。首先,需要在项目pom.xml文件中添加以下依赖:...

  • 19617851802MQTT协议-入门知识(转载)
    茹卓鸣MQTT在物联网、小型设备、移动应用等领域应用广泛。MQTT协议当前版本为MQTT v3.1.1,除标准版外,还有针对嵌入式设备的MQTT-SN简化版。MQTT与HTTP一样,在TCP\/IP堆栈之上运行。MQTT使用发布\/订阅消息模式,提供了一对多的消息分发机制,实现与应用程序的解耦。MQTT服务器作为发布-订阅架构的核心,允许...

  • 19617851802Java MQTT 实现物联网通信
    茹卓鸣Java中实现物联网通信通过MQTT协议,Eclipse Paho库是一个高效的选择。这个开源库为Java开发者提供了丰富的MQTT客户端功能。以下是一个使用Eclipse Paho的简化步骤:首先,将Eclipse Paho库集成到你的Java项目,可以通过Maven或者直接下载库文件来完成。核心的代码示例如下:通过创建MqttClient实例,指定MQTT服务...

  • 19617851802Android MQTT 通信
    茹卓鸣   qos = 2 :确保消息只一次到达接收方,发送方和接收方之间消息处理流程最复杂;    Mqtt Qos 深度解读 和 MQTT协议QoS2 准确一次送达的实现 7. payload 负载消息   字节流类型, 是 MQTT 通信传输的真实数据 8. 保留消息  ...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网