emqtt - 开源Erlang MQTT Broker/Client项目介绍

Erlang MQTT 消息服务器/客户端

emqttd是采用Erlang语言开发,全面支持MQTT V3.1.1协议,支持集群和大规模链接的开源MQTT消息服务器。git

emqttd致力于发布一个基于Erlang/OTP语言平台,企业级稳定可靠,彻底开源免费,可集群支持大规模物联网(IoT/M2M)、移动互联网链接的MQTT消息服务器。github

emqttd architecture

Erlang MQTT项目开发历史

Erlang MQTT是在2012年一个客户项目结束后,把简单的MQTT协议服务器部分开源在GitHub。项目在没任何推广状况下得到了100+ Stars,从2014年开始做为正式开源项目来专职维护,欢迎你们试用和参与开发。ubuntu

Erlang MQTT服务器目前的功能列表

  • 全面支持MQTT V3.1/V3.1.1协议规范
  • QoS0/1/2消息发布与订阅支持
  • Session管理和离线消息支持
  • 客户端链接状态(Presence)管理
  • Last Will消息支持
  • Retained消息支持
  • TCP/SSL链接支持
  • MQTT over WebSocket链接支持
  • HTTP Publish消息发布接口
  • ‘$SYS/#’系统Topic支持
  • 基于ClientId、IP地址认证支持
  • 基于用户名、密码认证支持
  • 基于ClientId、用户名、IP地址的ACL访问控制
  • 多服务器集群(Cluster)支持
  • 多节点桥接(Bridge)支持
  • 单节点50万+客户端链接支持
  • 插件架构支持
  • 经过Eclipse Paho项目的服务器互操做性测试

Erlang MQTT服务器的开发目标

  • 开放源码, MIT开源软件许可协议
  • 支持多服务器集群, 大规模客户端链接支持
  • 安装简便, 下载解压便可启动运行
  • 插件架构, 定制或扩展服务器功能

快速下载安装

emqttd可跨平台运行在Linux、FreeBSD、Windows与 Mac OS X。
http://emqtt.io/downloads页面下载程序安装包。服务器

解压tgz格式程序包,到安装目录启动。例如:架构

shtar xvf emqttd-ubuntu64-0.8.1-alpha-20150525.tgz && cd emqttd

# 控制台模式启动,用于调试。控制台能够打印全部收发的MQTT报文
./bin/emqttd console

# 守护进程模式启动,默认占用1883端口用于MQTT链接,8083端口用于HTTP接口
./bin/emqttd start

# 查看运行状态
./bin/emqttd_ctl status

# 中止
./bin/emqttd stop

下载源码编译:curl

git clone https://github.com/emqtt/emqttd.git

cd emqttd && make && make dist

HTTP消息发布接口测试

emqttd支持经过HTTP接口从应用程序向MQTT客户端发布消息。测试

例子:url

curl -v --basic -u user:passwd -d "qos=1&retain=0&topic=/a/b/c&message=hello" -k http://localhost:8083/mqtt/publish

URL:spa

HTTP POST http://host:8083/mqtt/publish插件

参数:

  • qos: QoS(0, 1, 2)
  • retain: Retain(0, 1)
  • topic: Topic
  • message: Message
相关文章
相关标签/搜索