websocket併發量,各大瀏覽器最大socket連接數

前言:各大瀏覽器最大socket連接數

  • IE 6個
  • chrome 256個
  • Firefox 200個
  • safari 1273個(MAC版本)

問題:以google爲例

在開發調試websocket的時候,去瀏覽器模擬了ws請求,測試服務器請求量,發現只有255個成功,之後所有請求全部失敗,經各種考證發現,不是服務器問題,而是瀏覽器最大併發請求量爲256。
在這裏插入圖片描述

原因:

調試發現發起2000個請求後報錯,提示併發量太大,於是翻閱nodejs 查看關於所有請求線程併發相關內容,發現http.request() 使用的默認 http.globalAgent 的選項均爲各自的默認值

  • keepAlive : 保持 socket 可用即使沒有請求,以便它們可被將來的請求使用而無需重新建立一個 TCP
    連接。默認爲 false。
  • keepAliveMsecs :當使用了 keepAlive 選項時,該選項指定 TCP Keep-Alive 數據包的
    初始延遲。 當 keepAlive 選項爲 false 或 undefined 時,該選項無效。 默認爲 1000。 maxSockets
    每個主機允許的最大 socket 數量。 默認爲 Infinity。
  • maxFreeSockets 在空閒狀態下允許打開的最大 socket 數量。 僅當 keepAlive 爲 true
    時纔有效。 默認爲 256 但是並沒有爲koa開啓keepAlive 所以不會是原始globalAgent
    的問題,使用多瀏覽器請求,每次200個是可以的,服務端線程池也沒有報錯,所以判斷是瀏覽器限制每次併發請求不能大於256個線程。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章