other: 更新 README.md Server 架构图
This commit is contained in:
parent
1ae1e04264
commit
19b4509fd3
Binary file not shown.
Before Width: | Height: | Size: 101 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 30 KiB |
|
@ -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: 消息处理
|
Loading…
Reference in New Issue