1.服务端软件对比

  https://github.com/mqtt/mqtt.github.io/wiki/servers

名称(点名进官网) 特性 简介 收费 支持的客户端语言

IBM MQ

  • 完整的MQTT v3.1
  • IBM MQ
  • JMS

企业级

IBM MQ(之前称作 WebSphere MQ)是一个安全的消息传递软件,

可以快速地在应用、系统和服务之间传递消息数据。

试用  c、java

IBM MessageSight

  • MQTT V3.1.1
  • QoS 0、1 、 2 - 竭尽全力、至少一次和只有一次
  • 支持带有 JavaScript API 的 MQTT 插件
  • 支持android/ios
  • 支持连接大量设备。
  • 针对持久性和非持久性消息交付高吞吐量。
  • JMS、WebSockets
  • 支持移动应用获得对JEE)企业应用的可扩展访问权。

企业级

专业的物连网服务端设备。

收费   java、c、JavaScript、ObjectiveC

Really Small Message Broker

  • MQTT v3.1

最小,最轻量的服务端。

早期版本只占80 KB硬盘空间和200k内存。

现在已经合并到Eclipse Mosquitto

免费  c
Moquette
  • QoS 0,QoS 1 和 QoS 2

Moquette 使用 Netty 作为协议编码和解码,

协议逻辑本质上是单线程,并且通过 LMAX disruptor

的循环缓冲器独立于前端连接器部分。

免费  java
Mosquitto
  • MQTT 3.1.1、MQTT 3.1
专为物连网设备和手机设计的软件 免费  c/c++、java、python
Eclipse Paho
  • 综合,全面。
开源mqtt服务端、客户端软件。 免费 

比较全面

Emitter
  • 消息可持久化。
  • 支持消息过滤,
  • 消息回放。
  • 默认2进制消息,可配置文本消息
  • 文档详细
.net写的快速,安全,实时服务端 免费

JAVA 、JAVASCRIPT、

TYPESCRIPT .NET / C# 、

GO、C/C++、PYTHON

emqttd(国内)
  • 完整支持MQTT V3.1/V3.1.1协议规范
  • 扩展支持WebSocket、Stomp、CoAP、

    MQTT-SN或私有TCP协议

  • 双节点负载均衡或多节点分布式集群
  • 中文文档详细
国内分布式开源物联网MQTT消息服务器 免费/收费

C/C++、Erlang、Java、

Javascrip、tObjective-C/Swift、

PHP、Python、Ruby

Xively   目前是beta版本,不推荐      
Yunba 国内
  • 实时统计、实时图表
  • 实时消息
  • 中文文档详细
  • 已经封装好android,ios等sdk
强调实时通讯  免费/收费  java,javascript,obj-c,php,c
RabbitMQ
  • 可分部式部属
  • 支持TLS and LDAP.
  • 管理和监视有ui界面

企业级

使用率较高的轻量级mqtt服务端,是一个在

AMQP基础上完成的,可复用的消息系统。

MPL java、Erlang、.net

Apache ActiveMQ

  • MQTT v3.1、AMQP v1.0、Stomp 、OpenWire
  • JMS provider
  • 支持持久化会话
  • 消息组、虚拟目标、通配符、
  • 支持spring
  • 服务端ui管理
  • 通过多种流行j2ee服务器测试

TomEEGeronimo, JBoss, GlassFish and WebLogic)

强壮、快速、多客户端语言的mqtt服务端软件。 免费

Java, C, C++, C#, Ruby,

Perl, Python, PHP

Apache ActiveMQ Artemis

  • AMQP、MQTT、STOMP、HornetQ
  • 支持大包消息
  • 主题继承
  • 消息组、消息转移
ActiveMQ的子项目,性能比较优异。 免费 同上
Apache Apollo   从2015年7月开始已经弃用       
HiveMQ
  • QoS 0 and QoS 1
  • 100% mqtt
  • Websockets
  • 企业级安全性

企业级

mqtt服务端软件

试用   
Mosca
  • MQTT 3.1 and 3.1.1
  • QoS 0 and QoS 1
node.js写的MQTT服务端软件 免费 JavaScript
Loop
  • MQTT 3.1
  • JMS
云端MQTT     
VerneMQ
  • 高并发
  • 实时
  • 适应多种手机和嵌入式设备

企业级

高性能、分布式服务端软件

免费 

Erlang, Elixir, Lua, and

any programming language

that can implement HTTP WebHooks.

HBMQTT
  • QoS 0, QoS 1 and QoS 2
  • 自动重连
  • SSL 、TCP
python写的mqtt服务端 免费  python
vertx-mqtt-broker
  • 3.1.1 and 3.1
  • QoS 0, 1 and 2
  • OAuth2
  • WebSocket
  • TLS

It's not a fully featured MQTT broker

but can be used for building something like

that or for protocol translation (MQTT <--> ?).

免费  vert.x 

2.客户端软件对比

  https://github.com/mqtt/mqtt.github.io/wiki/libraries

  下表中并不是完全支持mqtt所有特性,如:有的只支持qos0,有的不支持验证,而Espduino 已经停止更新等。使用前要看下它们最新的官方文档。

2.1 特殊硬件mqtt客户端库

硬件,点名字可接入相关连接

特性

开源协议

最后更新(2017查询)
Arduino
  • 发布QoS 0
  • 订阅QOS0、QOS1
  • 默认心跳15s
  • 默认MQTT 3.1.1

MIT License

 2017-06
Espduino
  • QoS1,2,3
  • 多连接
  • SSL

MIT License

2016-10 
mbed
  • 只有2个cpp和1个.h
 未声明 2010-10
mbed (simple port of the Arduino pubsubclient)
  • 未找到相关文档
 未声明 2013-08
mbed (native implementation)

c++版本的库的特性与之相同

 未声明 2017-05
mbed (Paho Embedded C++ port) 同上  未声明 2015-08
mbed (Paho Embedded C port) 同上  未声明 2015-08
Nanode
  • 只支持QoS0
  • 最大127K
 未声明 2011
Netduino
  • 只有QoS 0
  • 可读性好
  • 性能好,文件小

BSD 2-Clause

BSD 3-Clause

2012-01
M2MQTT  连接失效    

2.2 c/c++ mqtt客户端库对比

软件库 特性 开源协议 最后更新(2017查询)
Eclipse Paho C  EPL 2017-07
Eclipse Paho Embedded C    EPL 2017-07
libmosquitto
  • mqtt3.0 mqtt3.1.1
EPL/EDL 2017-07
libemqtt    GLPL 2014-10
wolfMQTT
  • SSL/TLS
  • MQTT v3.1.1
  • QoS 0-2

GNU General Public License v2.0

2017-06
Eclipse Paho C++

Eclipse Public License v1.0

Eclipse Distribution License v1.0

2017-07
libmosquittopp
  • MQTT v3.1/v3.1.1
EPL/EDL 2017-07
Eclipse Paho Embedded C++ EPL / EDL  2017-07

2.3 java mqtt客户端库对比

java库   特性  开源协议  最后更新日期(2017查询)
Eclipse Paho Java

  

 EPL 2017-08
Xenqtt
  • Qos 0 QoS 1
Apache License Version 2.0  2013-12
MeQanTT
  • 只QoS 0
Apache License 2.0 2012-11
Fusesource mqtt-client
  • SSL
  • 3.1 and 3.1.1,默认3.1
ASL 2.0 2016-03
moquette
  • QoS 0, QoS 1 and QoS 2.
Apache License 2.0 2017-08

MA9B

  • 3.1 and 3.1.1
  • OpenSSL
  • SHA-2
2014-08 
IA92  需要 WebSphere Business Integration Message Broker 收费  
vertx-mqtt-client
  • mqtt 3.1.1
  • Qos 0 ,1 ,2
Apache License 2.0 2017-08
Qatja
  • MQTT 3.1.1
  • android客户端
  • android服务组件
- 2017-07

2.4 其它语言

语言

连接

语言

连接

Actionscript

Javascript

Bash

LotusScript

Clojure

Lua

Dart

.NET

Delphi

Objective-C

Erlang

OCaml

Elixir

Perl

Go

PHP

Haskell

Python

REXX

Prolog

Ruby

Qt

Shell Script

Swift

Tcl

   

3.Android上mqtt协议客户端示例

  https://github.com/mqtt/mqtt.github.io/wiki/mqtt_on_the_android_platform

Android MQTT Push 使用Eclipse Paho 客户端的android消息推送示例
Mosquitto 一个基于比较完整的android示例
MQTT and Android  使用ibm MqttClient的示例
First Android Service 简单示例,可参数内存较少。
Push Notifications for Android using MQTT 国内打不开
HelloMQTT  国内打不开
ListMQTT  国内打不开
Using MQTT with Android 中文 ibm提供的示例,使用eclipse在android2.2上,服务端是WebSphere MQ Telemetry
An Android group chat app using MQTT 打不开
Android with ActiveMQ and MQTT ActiveMQ+fusesource/mqtt-client 示例
Android-Paho-MQTT-Service  一个 使用Paho  MQTT Client写的android服务组件
mqttitude  打不开
MQTT Widget goole play上的一个mqtt apk
Power profiling MQTT on Android 国内打不开
Power profiling HTTPS Long Polling vs MQTT with SSL on Android 国内打不开

采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表的更多相关文章

  1. android手机推送视频到服务端

    项目需求,android手机向服务器推送视频.苦战几个星期终于实现,现记录下来以免以后忘记. 没做过Java,也没做过Android开发,只能现学现卖.在网上找了下搭建开发a  ndroid环境资料, ...

  2. Android消息推送(二)--基于MQTT协议实现的推送功能

    国内的Android设备,不能稳定的使用Google GCM(Google Cloud Messageing)消息推送服务. 1. 国内的Android设备,基本上从操作系统底层开始就去掉了Googl ...

  3. Android消息推送完美方案[转]

    转自 Android消息推送完美方案 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来 ...

  4. Android消息推送完美方案

    转自:http://bbs.hiapk.com/thread-4652657-1-1.html 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原 ...

  5. Android消息推送完美解决方案全析

    推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来和大家共同探讨一种Android消息推 ...

  6. 使用GCM服务(Google Cloud Messaging)实现Android消息推送

    最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...

  7. Android消息推送的服务端

    2.Android消息推送 MQTT服务器采用mosquito  http://mosquitto.org/ PHP管理包采用phpmqttclient:https://github.com/toku ...

  8. android 消息推送

    android 消息推送 极光推送百度云推送(语音)友盟消息推送

  9. Android消息推送——JPush极光推送

    刚看了一篇关于Android消息推送评测总结的博客http://www.cnblogs.com/logan/p/4514635.html: 自己也对原学过的JPush极光进行一下小结,方便后续工作使用 ...

随机推荐

  1. delphi json用法

    用法:uses Superobject, Sperjsondelphi里有json单元. procedure TForm2.SuperObjectClick(Sender: TObject); var ...

  2. small cell 在安防领域的应用探讨

    在安防领域,最核心的问题是:如何有效区分“内部人员”与“外部人员”.所谓“有效”包含两点意思,一是安全,尽可能地过滤出“外部人员”.二是效率,即尽可能无干扰地或较小干扰地使“内部人员”通过.所有的安全 ...

  3. 课后练习Javascript

    <script type="text/javascript"> alert (isNaN(prompt("输入个数字进来","只能输入数字 ...

  4. C#调用OCX控件的常用方法[转]

    小伙伴们在使用ICP提供的各种能力进行集成开发时常常会遇到一些技术上的困扰,例如ICP中很多接口是通过OCX控件的方式提供的,如何调用这些接口,就成了一个不大不小的问题,毕竟开发指南上可没这些内容啊~ ...

  5. HBase基准性能测试报告

    作者:范欣欣 本次测试主要评估线上HBase的整体性能,量化当前HBase的性能指标,对各种场景下HBase性能表现进行评估,为业务应用提供参考.本篇文章主要介绍此次测试的基本条件,HBase在各种测 ...

  6. Linux日常命令使用记录

    scp在跨机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入. 在服务器104.238.161.75上操作,将服务器 ...

  7. Ecliplse导入maven项目applicationContext.xml报错:Referenced file contains errors (http://www.springframework.org/schema/context/spring-context-3.1.xsd). For more information, right click on the message in

    刚刚导入的maven项目的Spring配置文件报错: 大体意思是说: 引用的文件包含错误(http://www.springframework.org/schema/context/springing ...

  8. php代码审计5审计命令执行漏洞

    命令执行漏洞:通过易受攻击的应用程序在主机操作系统上执行任意命令,用户提供的数据(表单,cookie,http头等)未过滤 挖掘思路:用户能够控制函数输入,存在可执行代码的危险函数 命令执行和代码执行 ...

  9. 渗透测试工具实战技巧 (转载freebuf)

    最好的 NMAP 扫描策略 # 适用所有大小网络最好的 nmap 扫描策略 # 主机发现,生成存活主机列表 $ nmap -sn -T4 -oG Discovery.gnmap 192.168.56. ...

  10. luoguP4868 Preprefix sum

    https://www.luogu.org/problemnew/show/P4868 线段树上加等差数列,基础区间修改单点查询 等差数列具有可加性,当在同一段区间内时,首项相加公差相加即可 #inc ...