docs: update gateway README

This commit is contained in:
JianBo He 2023-04-11 17:26:33 +08:00
parent e186477531
commit 945c6bc757
1 changed files with 44 additions and 10 deletions

View File

@ -1,4 +1,4 @@
# emqx_gateway # Gateway
EMQX Gateway is an application that managing all gateways in EMQX. EMQX Gateway is an application that managing all gateways in EMQX.
@ -11,16 +11,42 @@ protocol access on EMQX. For example:
- Configuration & Schema - Configuration & Schema
- HTTP/CLI management interfaces - HTTP/CLI management interfaces
There are some standard implementations available, such as [Stomp](../emqx_stomp/README.md),
[MQTT-SN](../emqx_mqttsn/README.md), [CoAP](../emqx_coap/README.md),
and [LwM2M](../emqx_lwm2m/README.md) gateway.
The emqx_gateway application depends on `emqx`, `emqx_authn`, `emqx_ctl` that The emqx_gateway application depends on `emqx`, `emqx_authn`, `emqx_ctl` that
provide the foundation for protocol access. provide the foundation for protocol access.
## Three ways to create your gateway More introduction: [Extended Protocol Gateway](https://www.emqx.io/docs/en/v5.0/gateway/gateway.html)
## Raw Erlang Application ## Usage
This application is just a Framework, we provide some standard implementations,
such as [Stomp](../emqx_stomp/README.md), [MQTT-SN](../emqx_mqttsn/README.md),
[CoAP](../emqx_coap/README.md) and [LwM2M](../emqx_lwm2m/README.md) gateway.
These applications are all packaged by default in the EMQX distribution. If you
need to start a certain gateway, you only need to enable it via
Dashboard, HTTP API or emqx.conf file.
For instance, enable the Stomp gateway in emqx.conf:
```hocon
gateway.stomp {
mountpoint = "stomp/"
listeners.tcp.default {
bind = 61613
acceptors = 16
max_connections = 1024000
max_conn_rate = 1000
}
}
```
## How to develop your Gateway application
There are three ways to develop Gateway application to accept your private protocol
clients.
### Raw Erlang Application
This approach is the same as in EMQX 4.x. You need to implement an Erlang application, This approach is the same as in EMQX 4.x. You need to implement an Erlang application,
which is packaged in EMQX as a [Plugin](todo) or as a source code dependency. which is packaged in EMQX as a [Plugin](todo) or as a source code dependency.
@ -30,7 +56,7 @@ and you can freely implement the features you need.
Steps guide: [Implement Gateway via Raw Application](doc/implement_gateway_via_raw_appliction.md) Steps guide: [Implement Gateway via Raw Application](doc/implement_gateway_via_raw_appliction.md)
## Respect emqx_gateway framework ### Respect emqx_gateway framework
Similar to the first approach, you still need to implement an application using Erlang Similar to the first approach, you still need to implement an application using Erlang
and package it into EMQX. and package it into EMQX.
@ -43,7 +69,7 @@ by the emqx_gateway framework, even if it may require you to understand more det
Steps guide: [Implement Gateway via Gateway framework](doc/implement_gateway_via_gateway_framekwork.md) Steps guide: [Implement Gateway via Gateway framework](doc/implement_gateway_via_gateway_framekwork.md)
## Use ExProto Gateway (Non-Erlang developers) ### Use ExProto Gateway (Non-Erlang developers)
If you want to implement your gateway using other programming languages such as If you want to implement your gateway using other programming languages such as
Java, Python, Go, etc. Java, Python, Go, etc.
@ -53,6 +79,14 @@ your device protocol and integrate it with EMQX.
Refer to: [ExProto Gateway](../emqx_exproto/README.md) Refer to: [ExProto Gateway](../emqx_exproto/README.md)
## Cookbook for emqx_gateway framework ## Understard emqx_gateway framework
*WIP* *WIP*
## Contributing
Please see our [contributing.md](../../CONTRIBUTING.md).
## License
See [LICENSE](../../LICENSE)