![]() |
||
---|---|---|
apps/emqtt | ||
data | ||
deps | ||
doc | ||
plugins | ||
rel | ||
scripts | ||
tests | ||
.gitignore | ||
.gitmodules | ||
CHANGELOG.md | ||
LICENSE | ||
Makefile | ||
README.md | ||
TODO | ||
go | ||
rebar | ||
rebar.config |
README.md
eMQTT
eMQTT is a clusterable, massively scalable, fault-tolerant and extensible MQTT V3.1/V3.1.1 broker written in Erlang/OTP.
eMQTT support MQTT V3.1/V3.1.1 Protocol Specification.
eMQTT requires Erlang R17+.
Startup in Five Minutes
$ git clone git://github.com/emqtt/emqtt.git
$ cd emqtt
$ make && make dist
$ cd rel/emqtt
$ ./bin/emqtt console
Deploy and Start
start
cp -R rel/emqtt $INSTALL_DIR
cd $INSTALL_DIR/emqtt
./bin/emqtt start
stop
./bin/emqtt stop
Configuration
etc/app.config
{emqtt, [
{auth, {anonymous, []}}, %internal, anonymous
{listen, [
{mqtt, 1883, [
{max_conns, 1024},
{acceptor_pool, 4}
]},
{http, 8083, [
{max_conns, 512},
{acceptor_pool, 1}
]}
]}
]}
etc/vm.args
-name emqtt@127.0.0.1
-setcookie emqtt
When nodes clustered, vm.args should be configured as below:
-name emqtt@host1
Cluster
Suppose we cluster two nodes on 'host1', 'host2', Steps:
on 'host1':
./bin/emqtt start
on 'host2':
./bin/emqtt start
./bin/emqtt_ctl cluster emqtt@host1
Run './bin/emqtt_ctl cluster' on 'host1' or 'host2' to check cluster nodes.
Cluster
Suppose we cluster two nodes on 'host1', 'host2', steps:
on 'host1':
./bin/emqtt start
on 'host2':
./bin/emqtt start
./bin/emqtt cluster emqtt@host1
Run './bin/emqtt cluster' on 'host1' or 'host2' to check cluster nodes.
HTTP API
eMQTT support http to publish message.
Example:
curl -v --basic -u user:passwd -d "qos=1&retain=0&topic=/a/b/c&message=hello from http..." -k http://localhost:8083/mqtt/publish
URL
HTTP POST http://host:8083/mqtt/publish
Parameters
Name | Description |
---|---|
qos | QoS(0, 1, 2) |
retain | Retain(0, 1) |
topic | Topic |
message | Message |
Design
License
The MIT License (MIT)
Author
feng at emqtt.io
Thanks
@hejin1026 (260495915 at qq.com)
@desoulter (assoulter123 at gmail.com)