emqx/README.md

139 lines
1.7 KiB
Markdown

# 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/slimpp/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, 8883, [
{max_conns, 512},
{acceptor_pool, 1}
]}
]}
]}
```
### etc/vm.args
```
-sname emqtt
-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 "topic=/a/b/c&message=hello from http..." -k http://localhost:8883/mqtt/publish
```
### URL
```
HTTP POST http://host:8883/mqtt/publish
```
### Parameters
Name | Description
-----|-------------
topic | MQTT Topic
message | Text Message
## Design
[Design Wiki](https://github.com/emqtt/emqtt/wiki)
## License
The MIT License (MIT)
## Author
feng at emqtt.io
## Thanks
@desoulter (assoulter123 at gmail.com)