From 215ddb215e24ac6d9075c418827f4ba46ce7d988 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Sun, 20 Jun 2021 18:03:52 +0530 Subject: [PATCH 01/12] Updated the Wechaty Puppet Service this PR links #890 --- docusaurus/docs/specs/service.md | 42 +++++++++++--------------------- 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index 58a9acae445..b2e1eff508d 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -2,12 +2,9 @@ title: Wechaty Puppet Service sidebar_label: Service --- +This section is all about the Wechaty Puppet Service Registration & Discovery, which is the core system for our **token**. -Recently, the Wechaty community has grown fast, we have more and more multi-language Wechaty (Python, Go, .NET, Java, PHP, Scala, etc) and puppet service providers (WXWork, Donut, Rock, PadLocal, etc). - -To make our ecosystem keep clean and healthy, I'd like to write this post as a draft specification for the Wechaty Puppet Service Registration & Discovery, which is the core system for support our **token**. - -## The Discovery +## The Puppet Service Discovery When a Wechaty user is using a **token** with Wechaty, the Wechaty will use that **token** to connect to the specific puppet service. @@ -20,38 +17,33 @@ The mechanism behind is the **Puppet Service Discovery**, which can resolve the {"ip":"1.2.3.4","port":1234} ``` -1. the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port. +**the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port.** 1. if the token is not registered, then the GET request will get a HTTP 404 with the below object: ```json {"ip":"0.0.0.0","port":0} ``` - -That's the Wechaty Puppet Service Discovery. - -For the Wechaty SDK, we should support the following environment variables so that the users can switch between different languages without any changes: +For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: 1. `export WECHATY_PUPPET_SERVICE_TOKEN=__TOKEN__` ## The Registration -In order to publish a Wechaty Puppet Service Token to the Wechaty community, we need to register this token by following the Wechaty Puppet Service Registration process. +In order to publish a Wechaty Puppet Service Token to the Wechaty community, you need to register this token by following the Wechaty Puppet Service Registration process. -There at least have two way to do the registration to publish tokens: +There are two ways to do the registration to publish the tokens: 1. By running a Wechaty docker command 1. By following the Wechaty Puppet Service Registration Protocol ### 1. Registration the Token with Docker -We have an issue describing the steps in details: +Yoc can visit the links below which gives a more detailed step by step description about registration of token using Docker. 1. [How to create your own Wechaty Puppet Service Token with the Web Protocol #1986](https://github.com/wechaty/wechaty/issues/1986) 1. [Using your Puppet PadPlus token with Python, Java, and Go Wechaty #1985](https://github.com/wechaty/wechaty/issues/1985) -Through the above steps, you can publish a token with any existing wechaty puppets. - -Related issues: + Other Related issues are listed below : 1. 1. @@ -61,21 +53,15 @@ Related issues: The current process can be described as the following two steps: -1. The `puppet server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token rock_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online. (refer to the source code at ) -1. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user. (refer to the source code at ) +1. The `puppet server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token rock_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online +[source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L236) +3. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user. [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) +Below is a pictorial representation that describes the above process. -You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) +[![Sequence Diagram](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/edit##eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGVmYXVsdFwiXG59IiwidXBkYXRlRWRpdG9yIjp0cnVlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ) -## Registration Process Discussion -The current process can be described as the following two steps: - -1. The `Wechaty Puppet Server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token puppet_servcie_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online. (refer to the source code at ) -1. When a Wechaty Puppet Service Discovery Query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_service_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user. (refer to the source code at ) - -The above two steps are the current way we are working with our service. So please feel free to read the source code from the links above, then I believe you can register multiple rock puppet token to our service with the same IP and Port without any problem. - -See: +You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) ## Related Resources From a870c6e5c8733f472bedff1d891db8a390c00b06 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Sun, 20 Jun 2021 18:08:04 +0530 Subject: [PATCH 02/12] checked errors --- docusaurus/docs/specs/service.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index b2e1eff508d..41841bc66b3 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -18,11 +18,13 @@ The mechanism behind is the **Puppet Service Discovery**, which can resolve the ``` **the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port.** + 1. if the token is not registered, then the GET request will get a HTTP 404 with the below object: ```json {"ip":"0.0.0.0","port":0} ``` + For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: 1. `export WECHATY_PUPPET_SERVICE_TOKEN=__TOKEN__` @@ -56,13 +58,11 @@ The current process can be described as the following two steps: 1. The `puppet server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token rock_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L236) 3. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user. [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) +4. You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) Below is a pictorial representation that describes the above process. [![Sequence Diagram](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/edit##eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGVmYXVsdFwiXG59IiwidXBkYXRlRWRpdG9yIjp0cnVlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ) - -You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) - ## Related Resources 1. Wechaty Puppet Service gRPC: From 4666e1f6c166d2f4c056746129ab241870ffa042 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Sun, 20 Jun 2021 18:12:40 +0530 Subject: [PATCH 03/12] removed errors --- docusaurus/docs/specs/service.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index 41841bc66b3..c4e24af4cab 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -57,8 +57,8 @@ The current process can be described as the following two steps: 1. The `puppet server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token rock_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L236) -3. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user. [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) -4. You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) +2. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user. [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) +3. You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) Below is a pictorial representation that describes the above process. [![Sequence Diagram](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/edit##eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGVmYXVsdFwiXG59IiwidXBkYXRlRWRpdG9yIjp0cnVlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ) From bb085da6adbcfde31d4ff80d726a3de6c4d008e2 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Sun, 20 Jun 2021 18:18:05 +0530 Subject: [PATCH 04/12] Update service.md --- docusaurus/docs/specs/service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index c4e24af4cab..16e55db9f1b 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -24,7 +24,7 @@ The mechanism behind is the **Puppet Service Discovery**, which can resolve the ```json {"ip":"0.0.0.0","port":0} ``` - + For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: 1. `export WECHATY_PUPPET_SERVICE_TOKEN=__TOKEN__` From 905e0f9259d587f25bc92b6988e5fd8b38d486a8 Mon Sep 17 00:00:00 2001 From: Rohitesh Kumar Jain Date: Sun, 27 Jun 2021 20:24:47 +0530 Subject: [PATCH 05/12] Update service.md --- docusaurus/docs/specs/service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index 16e55db9f1b..a1928616828 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -40,7 +40,7 @@ There are two ways to do the registration to publish the tokens: ### 1. Registration the Token with Docker -Yoc can visit the links below which gives a more detailed step by step description about registration of token using Docker. +You can visit the links below which gives a more detailed step by step description about registration of token using Docker. 1. [How to create your own Wechaty Puppet Service Token with the Web Protocol #1986](https://github.com/wechaty/wechaty/issues/1986) 1. [Using your Puppet PadPlus token with Python, Java, and Go Wechaty #1985](https://github.com/wechaty/wechaty/issues/1985) From 5805af68d4e2c6130061ffd1efc663fd5c7d82eb Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Mon, 28 Jun 2021 10:40:36 +0530 Subject: [PATCH 06/12] all finishing done --- docusaurus/docs/specs/service.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index a1928616828..7b100689b8b 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -53,14 +53,13 @@ You can visit the links below which gives a more detailed step by step descripti ### 2. Register the Token with Protocol -The current process can be described as the following two steps: +The current process can be described as the following steps: -1. The `puppet server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token rock_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online +1. The `puppet server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token rock_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online.See the [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L236) -2. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user. [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) +2. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user.See the [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) 3. You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) -Below is a pictorial representation that describes the above process. - +The following is a pictorial representation that describes the process above. [![Sequence Diagram](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/edit##eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGVmYXVsdFwiXG59IiwidXBkYXRlRWRpdG9yIjp0cnVlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ) ## Related Resources From 8430cbb3b6859e8756695aca2e44fa2dd95f9369 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Fri, 10 Sep 2021 19:22:03 +0530 Subject: [PATCH 07/12] updated with suggested changes --- docusaurus/docs/specs/service.md | 35 +++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index 7b100689b8b..a5e8862bd67 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -11,15 +11,15 @@ When a Wechaty user is using a **token** with Wechaty, the Wechaty will use that The mechanism behind is the **Puppet Service Discovery**, which can resolve the IP of gGRPC service by the token, is implemented by the following steps: 1. construct a URL: `https://api.chatie.io/v0/hosties/${TOKEN}` -1. make a GET request to the URL, and expect to get the following json object: +2. make a GET request to the URL, and expect to get the following json object: ```json - {"ip":"1.2.3.4","port":1234} + {"host":"1.2.3.4","port":1234} ``` **the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port.** -1. if the token is not registered, then the GET request will get a HTTP 404 with the below object: +3. if the token is not registered, then the GET request will get a HTTP 404 with the below object: ```json {"ip":"0.0.0.0","port":0} @@ -27,7 +27,7 @@ The mechanism behind is the **Puppet Service Discovery**, which can resolve the For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: -1. `export WECHATY_PUPPET_SERVICE_TOKEN=__TOKEN__` +4. `export WECHATY_PUPPET_SERVICE_TOKEN=__TOKEN__` ## The Registration @@ -36,20 +36,21 @@ In order to publish a Wechaty Puppet Service Token to the Wechaty community, you There are two ways to do the registration to publish the tokens: 1. By running a Wechaty docker command -1. By following the Wechaty Puppet Service Registration Protocol +2. By following the Wechaty Puppet Service Registration Protocol ### 1. Registration the Token with Docker You can visit the links below which gives a more detailed step by step description about registration of token using Docker. 1. [How to create your own Wechaty Puppet Service Token with the Web Protocol #1986](https://github.com/wechaty/wechaty/issues/1986) -1. [Using your Puppet PadPlus token with Python, Java, and Go Wechaty #1985](https://github.com/wechaty/wechaty/issues/1985) +2. [Using your Puppet PadPlus token with Python, Java, and Go Wechaty #1985](https://github.com/wechaty/wechaty/issues/1985) - Other Related issues are listed below : +Through the above steps, you can publish a token with any existing wechaty puppets. +Other Related issues are listed below : 1. -1. -1. +2. +3. ### 2. Register the Token with Protocol @@ -60,12 +61,22 @@ The current process can be described as the following steps: 2. When a puppet service discovery query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_rock_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user.See the [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) 3. You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) The following is a pictorial representation that describes the process above. -[![Sequence Diagram](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/edit##eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgV2VjaGF0eSBQdXBwZXQgU2VydmVyLT4-K2FwaS5jaGF0aWUuaW86IFNlbmRzIGEgd2Vic29ja2V0IGNvbm5lY3Rpb24gd2l0aCBIdHRwIGF1dGhvcml6YXRpb24gaGVhZGVyKFRva2VuIHB1cHBldF9zZXJ2Y2llX3Rva2VuX2hlcmUpXG4gICAgYXBpLmNoYXRpZS5pby0-PiBXZWNoYXR5IFB1cHBldCBTZXJ2ZXI6IENvbm5lY3Rpb24gZXNhdGJsaXNoZWQgYW5kIHRva2VuIHJlZ2lzdGVyZWRcbiAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGVmYXVsdFwiXG59IiwidXBkYXRlRWRpdG9yIjp0cnVlLCJhdXRvU3luYyI6ZmFsc2UsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ) + +[![Sequence Diagram](Link to be added later) + +## Registration Process Discussion + +The current process can be described as the following two steps: + +1. The `Wechaty Puppet Server` sends a WebSocket connection to `wss://api.chatie.io/v0/websocket`, with an HTTP authorization header `Token puppet_servcie_token_here`. After the connection has been established, the `api.chatie.io` service will register your token online.Refer to the [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L236) +2. When a Wechaty Puppet Service Discovery Query has been sent to `api.chatie.io` like `https://api.chatie.io/v0/hosties/puppet_service_token` has been visited, the `api.chatie.io` will send a JSONRPC to you via the WebSocket connection, with the method name `hostieGrpcPort`, and you need to return your service port so that it can be returned to the user.Refer to the [source code](https://github.com/wechaty/wechaty/blob/7e97620e2a92841227a6ae355efa615c5af95b32/src/io.ts#L363) +3. Wechaty allows to register multiple rock puppet token to the service with the same IP and Port without any problem. +for more information checkout the [link](https://github.com/wechaty/wechaty-puppet-service/issues/98). ## Related Resources -1. Wechaty Puppet Service gRPC: +- [Wechaty Puppet Service gRPC](https://github.com/wechaty/grpc) ## Blogs -1. [Introducing Wechaty Puppet Service (Providers), @huan, Jan 14, 2021](https://wechaty.js.org/2021/01/14/wechaty-puppet-service/) +- [Introducing Wechaty Puppet Service (Providers), @huan, Jan 14, 2021](https://wechaty.js.org/2021/01/14/wechaty-puppet-service/) From bc619ceabd49e53cf92f63c0797b0a13a61e38c6 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Fri, 10 Sep 2021 19:46:45 +0530 Subject: [PATCH 08/12] Update service.md --- docusaurus/docs/specs/service.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index beefbbc3d12..619d33f2062 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -16,16 +16,15 @@ The mechanism behind is the **Puppet Service Discovery**, which can resolve the ```json {"host":"1.2.3.4","port":1234} ``` - -**the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port.** +**the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port.** 3. if the token is not registered, then the GET request will get a HTTP 404 with the below object: ```json {"host":"0.0.0.0","port":0} ``` -For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: +4. For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: `export WECHATY_PUPPET_SERVICE_TOKEN=${TOKEN}` ## The Registration @@ -78,4 +77,4 @@ for more information checkout the [link](https://github.com/wechaty/wechaty-pupp ## Blogs -- [Introducing Wechaty Puppet Service (Providers), @huan, Jan 14, 2021](https://wechaty.js.org/2021/01/14/wechaty-puppet-service/) \ No newline at end of file +- [Introducing Wechaty Puppet Service (Providers), @huan, Jan 14, 2021](https://wechaty.js.org/2021/01/14/wechaty-puppet-service/) From 158a572691ff9d26c128a32d7466cab2ae157d0b Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Fri, 10 Sep 2021 20:22:02 +0530 Subject: [PATCH 09/12] Update service.md --- docusaurus/docs/specs/service.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index 619d33f2062..79509550861 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -11,20 +11,20 @@ When a Wechaty user is using a **token** with Wechaty, the Wechaty will use that The mechanism behind is the **Puppet Service Discovery**, which can resolve the IP of gGRPC service by the token, is implemented by the following steps: 1. construct a URL: `https://api.chatie.io/v0/hosties/${TOKEN}` -2. make a GET request to the URL, and expect to get the following json object: +1. make a GET request to the URL, and expect to get the following json object: - ```json - {"host":"1.2.3.4","port":1234} - ``` +```json +{"host":"1.2.3.4","port":1234} +``` **the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port.** -3. if the token is not registered, then the GET request will get a HTTP 404 with the below object: +1. if the token is not registered, then the GET request will get a HTTP 404 with the below object: - ```json - {"host":"0.0.0.0","port":0} - ``` +```json +{"host":"0.0.0.0","port":0} +``` -4. For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: +1. For the Wechaty SDK, we support the following environment variables so that the users can switch between different languages without any changes: `export WECHATY_PUPPET_SERVICE_TOKEN=${TOKEN}` ## The Registration From d54b37dda2daa01773088f1b81ac4eb5c46d7912 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Fri, 10 Sep 2021 21:24:10 +0530 Subject: [PATCH 10/12] Update service.md --- docusaurus/docs/specs/service.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index 79509550861..368092ef5ef 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -18,6 +18,7 @@ The mechanism behind is the **Puppet Service Discovery**, which can resolve the ``` **the above `1.2.3.4` will be the gRPC server, and the port `1234` is the gRPC port.** + 1. if the token is not registered, then the GET request will get a HTTP 404 with the below object: ```json From a320f362ffde98bdcf25e482dd8dfed4df63c71b Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Sat, 11 Sep 2021 14:48:39 +0530 Subject: [PATCH 11/12] added image --- .../img/docs/wechaty-sequence-diagram.webp | Bin 0 -> 14162 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docusaurus/static/img/docs/wechaty-sequence-diagram.webp diff --git a/docusaurus/static/img/docs/wechaty-sequence-diagram.webp b/docusaurus/static/img/docs/wechaty-sequence-diagram.webp new file mode 100644 index 0000000000000000000000000000000000000000..38cce05c60db50100d04091967ae2cb6f049413b GIT binary patch literal 14162 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 literal 0 HcmV?d00001 From bbc7940c81ad76489c1c9fc35272b1407b841640 Mon Sep 17 00:00:00 2001 From: Shraddha <42699578+shraddhavp@users.noreply.github.com> Date: Sat, 11 Sep 2021 14:51:53 +0530 Subject: [PATCH 12/12] added path to image --- docusaurus/docs/specs/service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/specs/service.md b/docusaurus/docs/specs/service.md index 368092ef5ef..bace2027717 100644 --- a/docusaurus/docs/specs/service.md +++ b/docusaurus/docs/specs/service.md @@ -61,7 +61,7 @@ The current process can be described as the following steps: 3. You can learn more about the registration protocol via this discussion: [Support rock puppet service provider. #98](https://github.com/wechaty/wechaty-puppet-service/issues/98) The following is a pictorial representation that describes the process above. -[![Sequence Diagram](Link to be added later) +![Sequence Diagram](../../static/img/docs/wechaty-sequence-diagram.webp "Registration Protocol") ## Registration Process Discussion