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. React项目中的registerServiceWorker的作用

    在公司的React前端项目中,发现有一个registerServiceWorker.js文件, 很久都没弄明白这个文件是干什么用的,查询了一些资料后,了解了一些 service worker是在后台运 ...

  2. 【leetcode 144. 二叉树的前序遍历】解题报告

    前往二叉树的:前序,中序,后序 遍历算法 方法一:递归 vector<int> res; vector<int> preorderTraversal(TreeNode* roo ...

  3. Win10 的操作中心如果不见了

    Win10 的操作中心如果不见了,可能是因为设置了不在任务栏显示操作中心,可以按照下面的设置来恢复. 1.单击开始菜单栏,打开设置: 2.选择个性化: 3.下图中,在左边选择"任务栏&quo ...

  4. JMeter Bean Shell

    1.什么是bean Shell BeanShell是一种脚本语言,一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法,beanShell是一种松散类型的脚本语言(这点和JS类似 ...

  5. django-redis 使用规范

    django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件. 1,安装 django-redis 最简单的方法就是用 pip ...

  6. P2407 [SDOI2009]地图复原

    $ \color{#0066ff}{ 题目描述 }$ 很久以前,有一个传说中的"EWF"部族,他们世代生活在一个N×M的矩形大地上.虽然,生活的地区有高山.有沼泽,但通过勤劳勇敢, ...

  7. Android--Apache HttpClient 的一些问题

    1,对于Android4.0之上的环境下,不能在主线程中访问网络    http://www.cnblogs.com/plokmju/p/Android_apacheHttpClient.html   ...

  8. (转)取消目录与SVN的关联

    第一种方法: 直接.逐级地删除目标目录中的隐藏属性的.svn目录 第二种方法: 如果用的是TortoiseSVN客户端,则先在另外一处建立一个新目录A,右键点住svn目录并拖动到A上松手,在弹出的菜单 ...

  9. [USACO07DEC]泥水坑Mud Puddles BFS BZOJ 1627

    题目描述 Farmer John is leaving his house promptly at 6 AM for his daily milking of Bessie. However, the ...

  10. poll?transport=longpoll&connection...烦人的请求

    2016-06-19 11:50 76人阅读 评论(0) 收藏 举报  分类: C#那点事 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.问题描述: 最近使用miniui做了一个后台管理系 ...