1. 程式人生 > 其它 >Soul閘道器-day14

Soul閘道器-day14

技術標籤:Soul閘道器

Soul閘道器-day14

後臺與閘道器資料同步

當用戶業接入到soul閘道器的時候,主要是通過9095,即soul-admin進行介面的註冊;這樣就存在一個疑惑:我們的閘道器是如何感知到註冊到soul-admin上的介面資訊呢?
以前分析過soul-bootstrap(即soul閘道器)的yaml配置檔案;我們在其中發現了這麼一個東西:

soul:
    sync:
        websocket :
             urls: ws://localhost:9095/websocket

可以看到這條sync屬性下配置的url訪問的地址就是我們的soul-admin,前面的ws://則代表著soul閘道器是通過websocket進行資料的同步的。

其實在soul-bootstrap啟動過程中的控制檯可以看到,閘道器是在不停的向admin的埠進行websocket的請求,以前不知道是在幹什麼,現在想來應該是在soul閘道器啟動之初就在向soul閘道器進行資料的同步請求。
那麼如何建立websocket連線的呢?通過全專案查詢關鍵詞:Websocket+sync,第一個冒出來的是:WebsocketSyncDataService,而看名字大概可以猜到這個還不是最終的入口,我們可以順著這個類找到呼叫了WebsocketSyncDataService的類:WebsocketSyncDataConfiguration,而在這個類的類頭上可以看到一列親切的註解:

@Configuration
@ConditionalOnClass(WebsocketSyncDataService.class)
@ConditionalOnProperty(prefix = "soul.sync.websocket", name = "urls")
public class WebsocketSyncDataConfiguration {

也就是說在這裡我們就初步的找到了組織,那麼soul閘道器具體是如何做的呢?我們又如何通過websocket類比到其他的資料同步中去呢?
明天再來分析…剛入職,大小周…要忙的東西好多。