From 945c6bc757e06ac348a2f09b634b7a821632ed70 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Tue, 11 Apr 2023 17:26:33 +0800 Subject: [PATCH 1/6] docs: update gateway README --- apps/emqx_gateway/README.md | 54 ++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/apps/emqx_gateway/README.md b/apps/emqx_gateway/README.md index 57e8febab..581f0245d 100644 --- a/apps/emqx_gateway/README.md +++ b/apps/emqx_gateway/README.md @@ -1,4 +1,4 @@ -# emqx_gateway +# Gateway EMQX Gateway is an application that managing all gateways in EMQX. @@ -11,16 +11,42 @@ protocol access on EMQX. For example: - Configuration & Schema - 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 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, 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) -## Respect emqx_gateway framework +### Respect emqx_gateway framework Similar to the first approach, you still need to implement an application using Erlang 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) -## 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 Java, Python, Go, etc. @@ -53,6 +79,14 @@ your device protocol and integrate it with EMQX. Refer to: [ExProto Gateway](../emqx_exproto/README.md) -## Cookbook for emqx_gateway framework +## Understard emqx_gateway framework *WIP* + +## Contributing + +Please see our [contributing.md](../../CONTRIBUTING.md). + +## License + +See [LICENSE](../../LICENSE) From 80f964bdbe4bfa75fa9151e6ebe2d37a1e9e3548 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Wed, 12 Apr 2023 10:44:37 +0800 Subject: [PATCH 2/6] chore: update apps/emqx_gateway/README.md Co-authored-by: Thales Macedo Garitezi --- apps/emqx_gateway/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_gateway/README.md b/apps/emqx_gateway/README.md index 581f0245d..5aed6421b 100644 --- a/apps/emqx_gateway/README.md +++ b/apps/emqx_gateway/README.md @@ -79,7 +79,7 @@ your device protocol and integrate it with EMQX. Refer to: [ExProto Gateway](../emqx_exproto/README.md) -## Understard emqx_gateway framework +## Understand emqx_gateway framework *WIP* From 9774ad2cdd79abdbb26660a6f4b695a241629b66 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Wed, 12 Apr 2023 20:54:08 +0800 Subject: [PATCH 3/6] chore: update apps/emqx_gateway/README.md --- apps/emqx_gateway/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_gateway/README.md b/apps/emqx_gateway/README.md index 5aed6421b..d1f327db2 100644 --- a/apps/emqx_gateway/README.md +++ b/apps/emqx_gateway/README.md @@ -11,7 +11,7 @@ protocol access on EMQX. For example: - Configuration & Schema - HTTP/CLI management interfaces -The emqx_gateway application depends on `emqx`, `emqx_authn`, `emqx_ctl` that +The emqx_gateway application depends on `emqx`, `emqx_authn`, `emqx_authz`, `emqx_ctl` that provide the foundation for protocol access. More introduction: [Extended Protocol Gateway](https://www.emqx.io/docs/en/v5.0/gateway/gateway.html) From aa9292e37ecbba51170347e3d0f00a40221f538a Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 13 Apr 2023 16:18:34 +0800 Subject: [PATCH 4/6] chore: update apps/emqx_gateway/README.md Co-authored-by: Stefan Strigler --- apps/emqx_gateway/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_gateway/README.md b/apps/emqx_gateway/README.md index d1f327db2..5dedea418 100644 --- a/apps/emqx_gateway/README.md +++ b/apps/emqx_gateway/README.md @@ -1,6 +1,6 @@ # Gateway -EMQX Gateway is an application that managing all gateways in EMQX. +EMQX Gateway is an application framework that manages all gateways within EMQX. It provides a set of standards to define how to implement a certain type of protocol access on EMQX. For example: From 40e4419a62d0a06cff19987aa3668a53c301c00a Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 13 Apr 2023 16:18:46 +0800 Subject: [PATCH 5/6] chore: update apps/emqx_gateway/README.md Co-authored-by: Stefan Strigler --- apps/emqx_gateway/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_gateway/README.md b/apps/emqx_gateway/README.md index 5dedea418..8ef0fa30a 100644 --- a/apps/emqx_gateway/README.md +++ b/apps/emqx_gateway/README.md @@ -43,7 +43,7 @@ gateway.stomp { ## How to develop your Gateway application -There are three ways to develop Gateway application to accept your private protocol +There are three ways to develop a Gateway application to accept your private protocol clients. ### Raw Erlang Application From 4dd0080e821682dda28036cd65b68d8eda9e51d2 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 13 Apr 2023 17:19:47 +0800 Subject: [PATCH 6/6] chore: fix unreachable links --- apps/emqx_gateway/README.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/apps/emqx_gateway/README.md b/apps/emqx_gateway/README.md index 8ef0fa30a..ebab3a7a9 100644 --- a/apps/emqx_gateway/README.md +++ b/apps/emqx_gateway/README.md @@ -49,13 +49,11 @@ clients. ### Raw 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 or as a source code dependency. In this approach, you do not need to respect any specifications of emqx_gateway, and you can freely implement the features you need. -Steps guide: [Implement Gateway via Raw Application](doc/implement_gateway_via_raw_appliction.md) - ### Respect emqx_gateway framework Similar to the first approach, you still need to implement an application using Erlang @@ -67,8 +65,6 @@ This is the approach we recommend. In this approach, your implementation can be by the emqx_gateway framework, even if it may require you to understand more details about it. -Steps guide: [Implement Gateway via Gateway framework](doc/implement_gateway_via_gateway_framekwork.md) - ### Use ExProto Gateway (Non-Erlang developers) If you want to implement your gateway using other programming languages such as @@ -77,11 +73,6 @@ Java, Python, Go, etc. You need to implement a gRPC service in the other programming language to parse your device protocol and integrate it with EMQX. -Refer to: [ExProto Gateway](../emqx_exproto/README.md) - -## Understand emqx_gateway framework - -*WIP* ## Contributing @@ -89,4 +80,4 @@ Please see our [contributing.md](../../CONTRIBUTING.md). ## License -See [LICENSE](../../LICENSE) +See [LICENSE](../../APL.txt)