[英]HTML5 websockets: max number of open connections?
HTML5 websockets是(並且已經有一段時間 )一個熱門話題,因為它們優雅地實現了實時 服務器端推送 。
我目前有一個工作應用程序,其中包含由Tomcat 7.0.30 提供支持的websockets ,其中包括websocket支持 。 但是將其轉移到生產環境會引發問題。
主要是我想知道每個瀏覽會話可以同時操作( 打開 )的最大連接數; 瀏覽會話意味着單個瀏覽器選項卡或窗口。
開放的websocket連接是否與Web服務器可以同時處理的最大連接數相加? 例如Apache中的MaxClients
。
相反, 瀏覽器本身限制的單個瀏覽會話的最大websockets數是多少? 正如此博客文章所示,截至2012年4月,不同的瀏覽器支持不同數量的開放 websocket連接。 (我個人的目標是每個瀏覽會話 1個開放的websocket;但是這個信息仍然很好知道)。
TL / DR:
ws:
和wss:
connections? 瀏覽器沒有最大連接默認值的標准規范。它取決於實現[0]。 此外,對於同一應用程序而言,每次瀏覽會話使用多個Web套接字似乎有些過分,因為您可以使用發布/訂閱源渠道。
連接的瓶頸通常是在服務器端。 Web套接字是對HTTP的升級,因此連接只是“升級”HTTP(TCP)連接[1] .HTTPS和WSS只為正常連接添加了一個安全層。它們不是一個不同的連接[2]。 在您的情況下,檢查maxConnections (和maxThreads )[3]和您的操作系統最大值[4] [5]。 如果您的並發連接數達到數萬,那么您應該開始考慮負載平衡或群集[6]。
[0] https://code.google.com/p/chromium/issues/detail?id=85323
[1] http://en.wikipedia.org/wiki/WebSocket
[2] http://en.wikipedia.org/wiki/HTTP_Secure
[3] http://tomcat.apache.org/tomcat-7.0-doc/config/http.html
[6] http://tomcat.apache.org/tomcat-7.0-doc/config/cluster.html
有關高並發性的更多信息: http : //www.kegel.com/c10k.html
在Gecko 7中,他們引入了參數network.websocket.max-connections
你可以在about:config
設置它。 它根據這個來“一次”設置最大的websocket連接: https : //developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
我不知道你是否可以從代碼中確定這個數字,以及是否有辦法確定在其他會話中打開了多少(所以你剩下多少)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.