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