create emqx project

Ery Lee 2cfcf2bff6 0.3.1-beta пре 11 година
apps 3ae463960f ok\n пре 11 година
data c9d3e2d291 mqtt 3.1.1 protocol пре 11 година
deps 3a6ed9a876 0.2 project structure пре 11 година
doc 56e1f20ef9 doc пре 11 година
plugins 58b1e258c1 add folder пре 13 година
rel ed3048232a name, setcookie max processes пре 11 година
scripts f3057c08e4 0.3.0 changes пре 11 година
tests 68eb225981 add tests пре 11 година
.gitignore a0017c3186 author пре 11 година
.gitmodules 68eb225981 add tests пре 11 година
CHANGELOG.md 2cfcf2bff6 0.3.1-beta пре 11 година
LICENSE 6ff4f59a25 frame -> packet пре 11 година
Makefile fc7cce87e8 deps -> get-deps пре 11 година
README.md 2e3f0bda11 8883 -> 8083 пре 11 година
TODO 4ec2b56c9c Merge branch 'dev' of github.com:emqtt/emqtt into dev пре 11 година
go 8cc8046a02 add пре 11 година
rebar 3a6ed9a876 0.2 project structure пре 11 година
rebar.config fdc69f6ea6 fix deps пре 11 година

README.md

eMQTT

eMQTT is a scalable, fault-tolerant and extensible mqtt broker written in Erlang/OTP.

eMQTT support MQTT V3.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

Design Wiki

License

The MIT License (MIT)

Author

feng at emqtt.io

Thanks

@hejin1026 (260495915 at qq.com)

@desoulter (assoulter123 at gmail.com)