Socket.io實現原理分析

1、如何實現namespace劃分?web

    同一域名下面,不一樣namespace的socket對象:有一個共同點,就是都在同一個engine對象(websocket封裝對象)的事件(open、data)響應函數;有一個不一樣點,各自socket對象的nsp屬性值不一樣。 而後,每一個websocket的數據包(packet),也有nsp屬性值。 websocket

    因此,在響應函數裏面,第一句就是判斷nsp值,是否與該socket值相同。 相同,則是該socket處理範圍; 不相同,不作任何處理。socket

2、如何共用websocket鏈接?函數

    這個簡單。其實就是Socket類,不直接對外暴露給用戶,經過全局io函數。 對同一域,該io函數內部,維繫一個Manage對象,它與websocket鏈接一一對應;Manager對象,維護n個Socket對象。spa

 

協議格式參考: https://www.jianshu.com/p/a3e06ec1a3a0對象

 

   

相關文章
相關標籤/搜索