GetStarted doc
This commit is contained in:
parent
3c44aeecb8
commit
47ae8914b4
|
@ -0,0 +1,199 @@
|
||||||
|
# eMQTT Get Started
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
eMQTT is a clusterable, massively scalable, fault-tolerant and extensible MQTT V3.1/V3.1.1 broker written in Erlang/OTP.
|
||||||
|
|
||||||
|
eMQTT is aimed to provide a solid-stable broker that could be clusterd to support millions of connections and clients.
|
||||||
|
|
||||||
|
## Requires
|
||||||
|
|
||||||
|
eMQTT is cross-platform, could run on windows, linux, freebsd and mac os x.
|
||||||
|
|
||||||
|
eMQTT requires Erlang R17+ to build from source.
|
||||||
|
|
||||||
|
## Featues
|
||||||
|
|
||||||
|
### Full MQTT V3.1.1 Support
|
||||||
|
|
||||||
|
MQTT V3.1.1 and V3.1 protocol support
|
||||||
|
|
||||||
|
QoS0, QoS1, QoS2 Publish and Subscribe
|
||||||
|
|
||||||
|
Session Management and Offline Messages
|
||||||
|
|
||||||
|
Retained Messages
|
||||||
|
|
||||||
|
Passed eclipse paho interoperability tests
|
||||||
|
|
||||||
|
### Clusterable, Massively Scalable
|
||||||
|
|
||||||
|
Massive Connections Clients Support
|
||||||
|
|
||||||
|
Cluster brokers on servers or cloud hosts
|
||||||
|
|
||||||
|
Bridge brokers locally or remotelly
|
||||||
|
|
||||||
|
## Download, Install
|
||||||
|
|
||||||
|
### Download
|
||||||
|
|
||||||
|
Dowload binary packages from [http://emqtt.io/downloads](http://emqtt.io/downloads].
|
||||||
|
|
||||||
|
Please build from source if no packages for your platform, or contact us.
|
||||||
|
|
||||||
|
### Install
|
||||||
|
|
||||||
|
Extract tgz package to your installed directory. for example:
|
||||||
|
|
||||||
|
```
|
||||||
|
tar xvf emqtt-ubuntu64-0.3.0-beta.tgz && cd emqtt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Startup
|
||||||
|
|
||||||
|
Startup console for debug:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd emqtt && ./bin/emqtt console
|
||||||
|
```
|
||||||
|
|
||||||
|
You could see all RECV/SENT MQTT Packages on console.
|
||||||
|
|
||||||
|
Start as daemon:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd emqtt && ./bin/emqtt start
|
||||||
|
```
|
||||||
|
|
||||||
|
eMQTT occupies 1883 port for MQTT, 8083 for HTTP API.
|
||||||
|
|
||||||
|
### Status
|
||||||
|
|
||||||
|
```
|
||||||
|
cd emqtt && ./bin/emqtt_ctl status
|
||||||
|
```
|
||||||
|
|
||||||
|
### Stop
|
||||||
|
|
||||||
|
```
|
||||||
|
cd emqtt && ./bin/emqtt stop
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### etc/app.config
|
||||||
|
|
||||||
|
```
|
||||||
|
{emqtt, [
|
||||||
|
%Authetication. Internal, Anonymous Default.
|
||||||
|
{auth, {anonymous, []}},
|
||||||
|
{access, []},
|
||||||
|
{session, [
|
||||||
|
{expires, 1}, %hours
|
||||||
|
{max_queue, 1000},
|
||||||
|
{store_qos0, false}
|
||||||
|
]},
|
||||||
|
{retain, [
|
||||||
|
{store_limit, 100000}
|
||||||
|
]},
|
||||||
|
{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
|
||||||
|
```
|
||||||
|
|
||||||
|
## Cluster
|
||||||
|
|
||||||
|
Suppose we cluster two nodes on 'host1', 'host2', Steps:
|
||||||
|
|
||||||
|
### configure and start node on host1
|
||||||
|
|
||||||
|
configure 'etc/vm.args':
|
||||||
|
|
||||||
|
```
|
||||||
|
-name emqtt@host1
|
||||||
|
```
|
||||||
|
|
||||||
|
then start:
|
||||||
|
|
||||||
|
```
|
||||||
|
./bin/emqtt start
|
||||||
|
```
|
||||||
|
|
||||||
|
### configure and start node on host2
|
||||||
|
|
||||||
|
configure 'etc/vm.args':
|
||||||
|
|
||||||
|
```
|
||||||
|
-name emqtt@host2
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
./bin/emqtt start
|
||||||
|
```
|
||||||
|
|
||||||
|
### cluster two nodes
|
||||||
|
|
||||||
|
Cluster from 'host2':
|
||||||
|
|
||||||
|
```
|
||||||
|
./bin/emqtt_ctl cluster emqtt@host1
|
||||||
|
```
|
||||||
|
|
||||||
|
or cluster from 'host1':
|
||||||
|
|
||||||
|
```
|
||||||
|
./bin/emqtt_ctl cluster emqtt@host2
|
||||||
|
```
|
||||||
|
|
||||||
|
then check clustered nodes on any host:
|
||||||
|
|
||||||
|
```
|
||||||
|
./bin/emqtt_ctl cluster
|
||||||
|
```
|
||||||
|
|
||||||
|
## HTTP API
|
||||||
|
|
||||||
|
eMQTT support HTTP API to publish message from your APP to MQTT client.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
|
||||||
|
feng@emqtt.io
|
||||||
|
|
Loading…
Reference in New Issue