From 19b4509fd3d17b48d33befecf96417aa071309d4 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Thu, 21 Dec 2023 16:13:08 +0800 Subject: [PATCH] =?UTF-8?q?other:=20=E6=9B=B4=E6=96=B0=20README.md=20Serve?= =?UTF-8?q?r=20=E6=9E=B6=E6=9E=84=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/images/server-gdi.jpg | Bin 103666 -> 0 bytes .github/images/server-gdi.svg | 1 + .github/sequence-diagram/server-gdi.text | 37 +++++++++++++++++++++++ README.md | 2 +- 4 files changed, 39 insertions(+), 1 deletion(-) delete mode 100644 .github/images/server-gdi.jpg create mode 100644 .github/images/server-gdi.svg create mode 100644 .github/sequence-diagram/server-gdi.text diff --git a/.github/images/server-gdi.jpg b/.github/images/server-gdi.jpg deleted file mode 100644 index 0c90715dfc4e8ed0284f7cf1d88bf231cabf6865..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103666 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�CZ>s#jsW^Y<5P3Wgh_2@TpN{MxXhgvPcL# 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%0A%0Aparticipantspacing%20equal%0A%23participantspacing%20gives%20manual%20control%20of%20spacing%20between%20participants%2C%20equal%3A%20equal%20distance%20between%20all%20participants%2C%20number%20i.e.%2020.5%3A%20minimum%20space%0A%0Aactor%20Client%23lightgreen%0A%23supported%20participant%20types%3A%20participant%2C%20actor%2C%20boundary%2C%20control%2C%20entity%2C%20database%0A%0Aparticipantgroup%20%23lightgreen%20Minotaur%20Server%0Aparticipant%20Server%0Aparticipant%20Shunt%0Aabox%20left%20of%20Shunt%3A%20System%20%E6%B6%88%E6%81%AF%E5%B0%86%E5%85%A8%E5%B1%80%E5%8D%95%E7%BA%BF%E7%A8%8B%E6%89%A7%E8%A1%8C%EF%BC%8CShunt%20%E6%B6%88%E6%81%AF%E5%B0%86%E4%BC%9A%5Cn%E5%9C%A8%E8%BF%9E%E6%8E%A5%E5%BD%93%E5%89%8D%E6%89%80%E5%9C%A8%E5%88%86%E6%B5%81%E6%B8%A0%E9%81%93%E5%86%85%E6%89%A7%E8%A1%8C%E3%80%82%E7%9B%B8%E5%90%8C%E5%88%86%E6%B5%81%E6%B8%A0%E9%81%93%E7%9A%84%5Cn%E6%B6%88%E6%81%AF%E5%B0%86%E4%B8%B2%E8%A1%8C%E5%A4%84%E7%90%86%EF%BC%8C%E4%B8%8D%E5%90%8C%E5%88%86%E6%B5%81%E6%B8%A0%E9%81%93%E6%B6%88%E6%81%AF%E5%B9%B6%E8%A1%8C%E5%A4%84%E7%90%86%E3%80%82%5Cn%5Cn%E8%BF%9E%E6%8E%A5%E5%8F%AF%E6%A0%B9%E6%8D%AE%E4%B8%9A%E5%8A%A1%E5%9C%BA%E6%99%AF%E7%81%B5%E6%B4%BB%E7%9A%84%E9%80%9A%E8%BF%87%20srv.UseShunt%20%E6%9D%A5%5Cn%E5%88%87%E6%8D%A2%E5%BD%93%E5%89%8D%E6%89%80%E5%A4%84%E7%9A%84%E5%88%86%E6%B5%81%E6%B8%A0%E9%81%93%0Aabox%20left%20of%20Shunt%3A%20%E5%BC%82%E6%AD%A5%E6%B6%88%E6%81%AF%5Cn%5Cn(SystemMessage)%20srv.PushAsyncMessage%5Cn(ShuntMessage)%20srv.PushShuntAsyncMessage%5Cn(SystemMessage)%20srv.PushUniqueAsyncMessage%5Cn(ShuntMessage)%20srv.PushUniqueShuntAsyncMessage%5Cn%5Cn%20Unique%20%E6%B6%88%E6%81%AF%E5%B0%86%E4%BC%9A%E5%9C%A8%E4%B8%8A%E4%B8%80%E4%B8%AA%E7%9B%B8%E5%90%8C%E6%B6%88%E6%81%AF%E6%9C%AA%E6%89%A7%E8%A1%8C%E5%AE%8C%E6%AF%95%5Cn%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%BF%BD%E7%95%A5%E5%90%8E%E7%BB%AD%E6%B6%88%E6%81%AF%0Aend%0A%0AClient-%3EServer%3A%E9%80%9A%E8%BF%87%20WebSocket%E3%80%81TCP%E3%80%81UDP%E3%80%81KCP%20%E7%AD%89%E5%8D%8F%E8%AE%AE%E4%B8%8E%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5%0Aloop%20Write%20Loop%0AServer%20-%3EClient%3A%E5%86%99%E5%85%A5%E6%95%B0%E6%8D%AE%E5%8C%85%0Aabox%20left%20of%20Server%3A%20%E6%95%B0%E6%8D%AE%E5%8C%85%E5%B0%86%E8%A2%AB%E5%86%99%E5%85%A5%E5%AF%B9%E5%BA%94%E8%BF%9E%E6%8E%A5%E7%9A%84%E6%97%A0%E7%95%8C%E7%BC%93%E5%86%B2%E5%8C%BA%E5%86%85%E7%AD%89%E5%BE%85%E5%8F%91%E9%80%81%20%EF%BC%8C%E5%86%99%E5%85%A5%5Cn%E7%BC%93%E5%86%B2%E5%8C%BA%E5%90%8E%E9%80%BB%E8%BE%91%E8%A7%86%E4%B8%BA%E5%A4%84%E7%90%86%E5%AE%8C%E6%AF%95%EF%BC%8C%E7%BD%91%E7%BB%9C%20IO%20%E4%B8%8D%E4%BC%9A%E9%98%BB%E5%A1%9E%E5%88%86%E6%B5%81%E6%B8%A0%E9%81%93%0Aend%0AServer%20--%3EShunt%3A%20(SystemMessage)%20OnConnectionOpenedEvent%0AShunt%20--%3E%20Shunt%3A%20%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86%0AServer%20--%3EShunt%3A%20(ShuntMessage)%20OnConnectionOpenedAfterEvent%0AShunt%20--%3E%20Shunt%3A%20%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86%0A%0Aloop%20Read%20Loop%0AClient-%3EServer%3A%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E5%8C%85%0Aabox%20right%20of%20Client%3A%20%E6%95%B0%E6%8D%AE%E5%8C%85%E5%B0%86%E8%A2%AB%E5%8F%91%E9%80%81%E5%88%B0%E8%BF%9E%E6%8E%A5%E5%AF%B9%E5%BA%94%E5%88%86%E6%B5%81%E6%B8%A0%E9%81%93%E7%9A%84%E6%97%A0%E7%95%8C%E7%BC%93%E5%86%B2%E5%8C%BA%E5%86%85%0AServer%20--%3EShunt%3A%20(ShuntMessage)%20OnConnectionReceivePacketEvent%0AShunt%20--%3E%20Shunt%3A%20%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86%0AShunt%20--%3E%20Server%3A%20%E5%9B%9E%E5%A4%8D%E6%B6%88%E6%81%AF%0AServer%20--%3E%20Server%3A%20%E5%86%99%E5%85%A5%20Write%20Loop%0Aend%0A%0AClient%20%3C-%3EServer%3A%20%E6%96%AD%E5%BC%80%E6%88%96%E5%85%B3%E9%97%AD%E8%BF%9E%E6%8E%A5%0AServer%20--%3EShunt%3A%20(SystemMessage)%20OnConnectionClosedEvent%0AShunt%20--%3E%20Shunt%3A%20%E6%B6%88%E6%81%AF%E5%A4%84%E7%90%86%0AThis is a titleMinotaur ServerClientServerShuntSystem 消息将全局单线程执行,Shunt 消息将会在连接当前所在分流渠道内执行。相同分流渠道的消息将串行处理,不同分流渠道消息并行处理。连接可根据业务场景灵活的通过 srv.UseShunt 来切换当前所处的分流渠道异步消息(SystemMessage) srv.PushAsyncMessage(ShuntMessage) srv.PushShuntAsyncMessage(SystemMessage) srv.PushUniqueAsyncMessage(ShuntMessage) srv.PushUniqueShuntAsyncMessage Unique 消息将会在上一个相同消息未执行完毕的情况下忽略后续消息通过 WebSocket、TCP、UDP、KCP 等协议与服务器建立连接写入数据包数据包将被写入对应连接的无界缓冲区内等待发送 ,写入缓冲区后逻辑视为处理完毕,网络 IO 不会阻塞分流渠道(SystemMessage) OnConnectionOpenedEvent消息处理(ShuntMessage) OnConnectionOpenedAfterEvent消息处理发送数据包数据包将被发送到连接对应分流渠道的无界缓冲区内(ShuntMessage) OnConnectionReceivePacketEvent消息处理回复消息写入 Write Loop断开或关闭连接(SystemMessage) OnConnectionClosedEvent消息处理loop[Write Loop]loop[Read Loop] \ No newline at end of file diff --git a/.github/sequence-diagram/server-gdi.text b/.github/sequence-diagram/server-gdi.text new file mode 100644 index 0000000..5463b93 --- /dev/null +++ b/.github/sequence-diagram/server-gdi.text @@ -0,0 +1,37 @@ +title This is a title + +participantspacing equal +#participantspacing gives manual control of spacing between participants, equal: equal distance between all participants, number i.e. 20.5: minimum space + +actor Client#lightgreen +#supported participant types: participant, actor, boundary, control, entity, database + +participantgroup #lightgreen Minotaur Server +participant Server +participant Shunt +abox left of Shunt: System 消息将全局单线程执行,Shunt 消息将会\n在连接当前所在分流渠道内执行。相同分流渠道的\n消息将串行处理,不同分流渠道消息并行处理。\n\n连接可根据业务场景灵活的通过 srv.UseShunt 来\n切换当前所处的分流渠道 +abox left of Shunt: 异步消息\n\n(SystemMessage) srv.PushAsyncMessage\n(ShuntMessage) srv.PushShuntAsyncMessage\n(SystemMessage) srv.PushUniqueAsyncMessage\n(ShuntMessage) srv.PushUniqueShuntAsyncMessage\n\n Unique 消息将会在上一个相同消息未执行完毕\n的情况下忽略后续消息 +end + +Client->Server:通过 WebSocket、TCP、UDP、KCP 等协议与服务器建立连接 +loop Write Loop +Server ->Client:写入数据包 +abox left of Server: 数据包将被写入对应连接的无界缓冲区内等待发送 ,写入\n缓冲区后逻辑视为处理完毕,网络 IO 不会阻塞分流渠道 +end +Server -->Shunt: (SystemMessage) OnConnectionOpenedEvent +Shunt --> Shunt: 消息处理 +Server -->Shunt: (ShuntMessage) OnConnectionOpenedAfterEvent +Shunt --> Shunt: 消息处理 + +loop Read Loop +Client->Server:发送数据包 +abox right of Client: 数据包将被发送到连接对应分流渠道的无界缓冲区内 +Server -->Shunt: (ShuntMessage) OnConnectionReceivePacketEvent +Shunt --> Shunt: 消息处理 +Shunt --> Server: 回复消息 +Server --> Server: 写入 Write Loop +end + +Client <->Server: 断开或关闭连接 +Server -->Shunt: (SystemMessage) OnConnectionClosedEvent +Shunt --> Shunt: 消息处理 diff --git a/README.md b/README.md index dd94c44..433ef7d 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ mindmap ``` ## Server 架构预览 -![server-gdi.jpg](.github/images/server-gdi.jpg) +![server-gdi.svg](.github/images/server-gdi.svg) ## 安装 注意:依赖于 **[Go](https://go.dev/) 1.20 +**