MQTT协议(二):推送篇

转载 2016年08月30日 10:28:23

MQTT协议(二):推送篇


如果觉得我写的还不错,请关注我的新浪微博@杨浩宇-小橘爷,最新文章即时推送~
MQTT协议(一):理论篇
MQTT协议(三):实战篇

主流推送方案:

APNS(Apple Push Notification Service)和GCM(Google Cloud Messaging)

APNS和GCM是iOS和Android两大阵营提出的官方推送方案,这两者的技术架构较为相似。都是由系统来统一的维护一个长连接,所有的APP统一发送心跳和接收推送。

APNS使用的方便性毋庸置疑,但是GCM却在国内举步维艰,具体原因有以下三个:

1、Google与我国政府交恶,导致GMS(Google Mobile Service)在国内无法正常使用,而GCM是依赖于GMS的,所以无法顺利使用。

2、由于国内2G和移动3G的NAT超时时间都小于GCM心跳时间(28分钟),TCP长连接必然无法保活,每次都要等28分钟心跳失败重连后才能收到Push。

3、某些运营商可能限制了5228端口,移动3G/2G下,发现几乎无法连接上GCM服务器,也就无法获得GCM通知,WhatsApp放后台10分钟后,经常很长时间都收不到Push消息。

XMPP

XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。

XMPP的优点是:协议成熟,强大,可扩展性强,并且有成熟的开源方案。

XMPP的缺点是:信息冗余量大(信息的格式是 XML),因而费流量,费电。

MQTT

MQTT的具体概念已经在上一篇博客中详细的介绍了:MQTT协议(一):理论篇 。

MQTT的优点是:协议简洁轻巧,数据冗余量低。并且支持的设备从智能硬件到智能手机无所不包。

MQTT的缺点是:服务器端实现难度大,虽然已经有了C++版本的服务端组件,但是并不开源。而且在推送数量较大时如何处理并发是十分考验后台人员的技术水平的。

HTTP轮询

HTTP轮询就是在一个给定的时间间隔后,定时向服务器发送请求,查看是否有新的数据。

HTTP轮询的优点是:实现简单、可控性强,部署硬件成本低。

HTTP轮询的缺点是:实时性差,只有时间到了才会向服务器查看是否有新的数据。两次请求之间的时间间隔过大,则失去了即时推送的意义。但如果设置的时间间隔较短的,又会费电费流量。

第三方推送

在推送这一分支领域有许许多多的第三方推送服务,例如:极光,个推等。

优点是集成方便。

缺点是大量推送数据后,付费服务是在所难免。

林林总总的推送方案大体就这些了,但是对于iOS开发者而言,后台保持长连接的权限极其难以获取,如果处理不当甚至会被APP Store的审核人员打回原形。所以,还是老老实实的使用APNS或第三方推送的服务吧~

From: http://www.jianshu.com/p/6ef247b55a05

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

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

单片机MQTT实现推送简单使用

1、准备条件: a)硬件:ATMEGA644PA 8位单片机 b)下载MQTT c语言的包: C/C++ MQTT Embedded clients https://www.eclipse.o...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Mosquitto 0.15 开源MQTT v3.1 Broker

Mosquitto是一个开源(BSD许可证)的消息代理,实现MQTT(消息队列遥测传输)协议版本3.1。 1.从http://mosquitto.org/download/下载Cygwin版...
  • akof1314
  • akof1314
  • 2012年04月24日 17:13
  • 11343

基于MQTT的消息推送

这段时间学习了推送技术,对xmpp和mqtt 协议做了下比较。 xmpp基于xml信息传递,所以传输信息量比较大,在保持长链接情况下功耗会比较大。 可能还是比较适合用来做聊天之类的通讯应用,而对于...
  • tww85
  • tww85
  • 2016年12月09日 11:45
  • 3795

MQTT服务器搭建--Apollo

1.Apollo下载 下载地址:http://activemq.apache.org/apollo/download.html 直接下载apache-apollo-1.7.1-windows的安装...

共享行业的分布式MQTT设计

随着移动互联网慢慢进入后半场,越来越多的公司将注意力转移到物联网,希望通过早期布局来占领这个行业的制高点,比如目前流行的摩拜单车和OFO单车都是典型的物联网应用。物联网本身并不是什么新概念,随着大数据...

[经验] 物联网项目开发必读 深度分析MQTT协议优缺点

物联网并不仅仅是一种网络,而是一个新的生态环境,它描述的本质是越来越多的使用物品通过网络连接在一起并可使用单个或者多个的终端设备对它们进行各种控制和使用—当然,工业上的物联网通常连接到的石鼓传感器或者...

MQTT介绍

MQTT,是: 轻量级的消息订阅和发布(publish/subscribe)协议建立在TCP/IP协议之上 IoT,internet of things,物联网,MQTT在这方面应...
  • joeyon
  • joeyon
  • 2016年12月06日 10:36
  • 2597
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MQTT协议(二):推送篇
举报原因:
原因补充:

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