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
相關文章
相關標籤/搜索