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