create emqx project

Ery Lee 3c44aeecb8 topic type: dynamic or static il y a 11 ans
apps 3c44aeecb8 topic type: dynamic or static il y a 11 ans
data c9d3e2d291 mqtt 3.1.1 protocol il y a 11 ans
deps 3a6ed9a876 0.2 project structure il y a 11 ans
doc 1e93f5f513 bridge il y a 11 ans
plugins 58b1e258c1 add folder il y a 13 ans
rel 3c44aeecb8 topic type: dynamic or static il y a 11 ans
scripts f3057c08e4 0.3.0 changes il y a 11 ans
tests 68eb225981 add tests il y a 11 ans
.gitignore a0017c3186 author il y a 11 ans
.gitmodules 68eb225981 add tests il y a 11 ans
CHANGELOG.md 3c44aeecb8 topic type: dynamic or static il y a 11 ans
LICENSE 6ff4f59a25 frame -> packet il y a 11 ans
Makefile fc7cce87e8 deps -> get-deps il y a 11 ans
README.md ffcb11896c remove duplicate 'Cluster' chapter il y a 11 ans
TODO f7a290b100 v3.1.1 il y a 11 ans
go 8cc8046a02 add il y a 11 ans
rebar 3a6ed9a876 0.2 project structure il y a 11 ans
rebar.config 38b451e1d2 fix mochiweb git il y a 11 ans

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.

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

Design Wiki

License

The MIT License (MIT)

Author

feng at emqtt.io

Thanks

@hejin1026 (260495915 at qq.com)

@desoulter (assoulter123 at gmail.com)