From 95f2ffe79322cb79e71fbde622fd2728115d67b7 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Wed, 10 Dec 2014 19:42:03 +0800 Subject: [PATCH] design --- README.md | 88 ++++++++++++++++++++++++++------------------------ doc/emqtt.png | Bin 0 -> 8953 bytes 2 files changed, 45 insertions(+), 43 deletions(-) create mode 100644 doc/emqtt.png diff --git a/README.md b/README.md index 030a92698..4eb7d71b7 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,76 @@ -emqtt -===== +# eMQTT -erlang mqtt broker. +eMQTT is a scalable, fault-tolerant and extensible mqtt broker written in Erlang/OTP. -requires -======== +eMQTT requires Erlang R17+. -erlang R15B+ +## Startup in Five Minutes -git client +``` + $ git clone git://github.com/slimpp/emqtt.git -build -======= + $ cd emqtt -make + $ make && make generate -release -======= + $ cd rel/emqtt -make generate + $ ./bin/emqtt console +``` -deloy -===== +## Deploy and Start -cp -R rel/emqtt $INSTALL_DIR +### start -start -====== +``` + cp -R rel/emqtt $INSTALL_DIR -cd $INSTALL_DRI/emqtt + cd $INSTALL_DIR/emqtt -./bin/emqtt console + ./bin/emqtt start -or +``` -./bin/emqtt start +### stop -status -====== +``` + ./bin/emqtt stop -./bin/emqtt_ctl status +``` -stop -==== +## HTTP API -./bin/emqtt stop +eMQTT support http to publish message. -logs -==== +Example: -log/* +``` + curl -v --basic -u user:passwd -d "topic=/a/b/c&message=hello from http..." -k http://localhost:8883/mqtt/publish +``` -http api -======== +### URL -curl -v --basic -u user:passwd -d "topic=/abc&message=akakakk&qos=0" -k http://localhost:8883/mqtt/publish +``` + HTTP POST http://host:8883/mqtt/publish +``` -design -===== +### Parameters -https://github.com/slimpp/emqtt/wiki +Name | Description +-----|------------- +topic | MQTT Topic +message | Text Message -author -===== +## Design -Ery Lee +[Design Wiki](https://github.com/slimpp/emqtt/wiki) - -license -====== +## License The MIT License (MIT) +## Author +===== + +feng at slimchat.io + diff --git a/doc/emqtt.png b/doc/emqtt.png new file mode 100644 index 0000000000000000000000000000000000000000..df6462e86033a8252334e946071efb14effcac64 GIT binary patch literal 8953 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