2012-11-16 29 views
3

它說的WebSocket怎樣的WebSocket保持連接

「使用WS (不安全)或WSS(安全)協議的通信是通過單個TCP套接字......」

它意味着客戶端服務器只需要一次握手?但我每秒都在NodeJs控制檯中看到握手。 他們是什麼?

回答

1

無論何時使用websocket的用戶執行JavaScript,都需要進行握手。 Websockets不能在頁面訪問之間重用。當用戶關閉或離開頁面時,它們會自動關閉。當用戶打開一個新選項卡時,將會創建第二個套接字,這將需要新的握手。

當您的NodeJs應用程序是客戶端駐留在HTML頁面上的Web應用程序時,只要用戶請求該頁面,連接就會重新建立。因此,當用戶瀏覽您的網站時,每個HTML頁面上都嵌入了一個使用websocket的JavaScript,那麼您將在每次點擊後看到新的握手信息。

當您始終看到新的握手信息時,儘管只有一位用戶始終保持在同一頁面上,但您的應用程序確實可能有問題。它是否可以一直創建新套接字,儘管它可以重用現有套接字? (每new WebSocket意味着一個新的websocket連接意味着正在執行一個新的握手)。