GatewayManager(網(wǎng)關(guān)管理器)
起初我以為這是一個單獨的進程,專門用來管理網(wǎng)關(guān),后來發(fā)現(xiàn)他實際上是被編譯為".lib"的。
代碼開起來很簡單,除了協(xié)議一共三只有三個類:GatewatManager、GWClientProxy、GWSVProxy
猜測一下:
GWClientProxy表示在Gateway上的客戶端
GWSVProxy表示服務(wù)器
GatewayManager做協(xié)調(diào)邏輯
簡單瀏覽了一下代碼實際應(yīng)該是這樣:
GatewayManager、GWClientProxy猜對了,而GWSVProxy標識的是GatewayServer。這樣來看在GatewayManager的抽象中GatewayServer、Client都是獨立的實體,可以通過代理做到直接訪問。
整個網(wǎng)關(guān)的設(shè)計,應(yīng)該是一個邏輯服務(wù)器做為一個GatewayManager連接并管理了多個GateWayServer來負載自己的并發(fā)連接數(shù),同時提供了GWSVProxy和GWClientProxy來實現(xiàn)“透明控制”
GatewayManager類分析:
1.從GatewayManager可以獲取到GWClientProxy,可以通過GUID來獲取
2.GatewayManager能感知到新的客戶端連接事件,事件參數(shù)包括實際連接客戶端的GWSVProxy和客戶端在該網(wǎng)關(guān)上的id,以及客戶端實際連接地址
3.GatewayManager能感知到新的網(wǎng)關(guān)服務(wù)器連接事件
一句話描述GatewayManager的功能:
直接和網(wǎng)關(guān)服務(wù)器連接,管理網(wǎng)關(guān)服務(wù)器,透過網(wǎng)關(guān)服務(wù)器直接訪問、管理客戶端連接。