网狐框架分析一
---
#1. 基本流程
? ? 客戶端同服務(wù)器建立通信連接
? ? 服務(wù)器判斷游戲是否開(kāi)始(客戶端等待其它玩家入位再游戲或者直接和服務(wù)器進(jìn)行游戲)
? ? 客戶端同服務(wù)器進(jìn)行交互及客戶端界面展示
? ? 游戲結(jié)束,進(jìn)入下一局,循環(huán)。
? ? 或者客戶端離開(kāi),中斷連接。
? ??
#2.圖示
##2.1 流程圖
```flow
st=>start: Start
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op
```
---
##2.2 時(shí)序圖
```seq
Note left of Client: html5
Client->Server: 發(fā)起登錄請(qǐng)求(var socket=new WebSocket(host);)
Server-->QueueService::OnQueueServiceThread:
QueueService-->CAttemperEngine::OnQueueServiceSink
CAttemperEngine-->CServerSocketRSThread::OnEventThreadRun
CServerSocketRSThread-->CServerSocketItem::OnRecvCompleted ?通過(guò)recv接收信息
CServerSocketItem-->CServerSocketItem::SendHandShakeData ?發(fā)送握手信息到客戶端
CServerSocketItem-->Client:: WSASend ?(websocket專用格式)?
CServerSocketItem-->CTCPNetworkEngine::OnSocketReadEvent
CTCPNetworkEngine-->PostNetworkReadEvent::
PostNetworkReadEvent-->CQueueService::AddToQueue -->PostQueuedCompletionStatus 加入數(shù)據(jù)隊(duì)列
Note left of Server: C++
Server-->Client: I am good thanks!
```
---
```seq
CServiceThread-->CQueueServiceThread::ThreadFunction()-->OnEventThreadRun()
CQueueServiceThread-->CQueueService::OnEventThreadRun()-->OnQueueServiceThread()
CQueueService-->CAttemperEngine::OnQueueServiceThread()-->OnQueueServiceSink()
CAttemperEngine-->CAttemperEngineSink::OnQueueServiceSink()-->OnEventTCPNetworkRead()
CAttemperEngineSink-->CTCPNetworkEngine:: OnEventTCPNetworkRead()-->SendData()
CTCPNetworkEngine-->CQueueService:: SendData()-->AddToQueue()-->PostQueuedCompletionStatus()
```
#1. 基本流程
? ? 客戶端同服務(wù)器建立通信連接
? ? 服務(wù)器判斷游戲是否開(kāi)始(客戶端等待其它玩家入位再游戲或者直接和服務(wù)器進(jìn)行游戲)
? ? 客戶端同服務(wù)器進(jìn)行交互及客戶端界面展示
? ? 游戲結(jié)束,進(jìn)入下一局,循環(huán)。
? ? 或者客戶端離開(kāi),中斷連接。
? ??
#2.圖示
##2.1 流程圖
```flow
st=>start: Start
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op
```
---
##2.2 時(shí)序圖
```seq
Note left of Client: html5
Client->Server: 發(fā)起登錄請(qǐng)求(var socket=new WebSocket(host);)
Server-->QueueService::OnQueueServiceThread:
QueueService-->CAttemperEngine::OnQueueServiceSink
CAttemperEngine-->CServerSocketRSThread::OnEventThreadRun
CServerSocketRSThread-->CServerSocketItem::OnRecvCompleted ?通過(guò)recv接收信息
CServerSocketItem-->CServerSocketItem::SendHandShakeData ?發(fā)送握手信息到客戶端
CServerSocketItem-->Client:: WSASend ?(websocket專用格式)?
CServerSocketItem-->CTCPNetworkEngine::OnSocketReadEvent
CTCPNetworkEngine-->PostNetworkReadEvent::
PostNetworkReadEvent-->CQueueService::AddToQueue -->PostQueuedCompletionStatus 加入數(shù)據(jù)隊(duì)列
Note left of Server: C++
Server-->Client: I am good thanks!
```
---
```seq
CServiceThread-->CQueueServiceThread::ThreadFunction()-->OnEventThreadRun()
CQueueServiceThread-->CQueueService::OnEventThreadRun()-->OnQueueServiceThread()
CQueueService-->CAttemperEngine::OnQueueServiceThread()-->OnQueueServiceSink()
CAttemperEngine-->CAttemperEngineSink::OnQueueServiceSink()-->OnEventTCPNetworkRead()
CAttemperEngineSink-->CTCPNetworkEngine:: OnEventTCPNetworkRead()-->SendData()
CTCPNetworkEngine-->CQueueService:: SendData()-->AddToQueue()-->PostQueuedCompletionStatus()
```
總結(jié)
- 上一篇: 请问WCF 跟 WebService之间
- 下一篇: 他毕业两年,博客一年,时间