2016-06-22 117 views
0

使用nodejs服務器和客戶端與socket.io我可以讓14k客戶端連接。即使在使用集羣時也略少。socket.io中的連接限制

CPU或RAM都沒有用完。除了socket.io自己執行的自動ping之外,不傳輸數據。

運輸設置爲只使用'websocket',不投票!

更多的客戶端只是因爲「超時」而失敗。

這是什麼原因造成的?

我可以理解,如果機器不夠強大。但是,我希望服務器隨機丟棄客戶端,而不是每次嘗試都停留在特定的金額上。

編輯:這是在使用web風暴的Windows上,我會盡可能在Linux機器上測試。

+1

也許這個問題與socket.io是有關你的問題:https://github.com/primus/primus/issues/355 – Jasper

+0

不幸的是,不使用正常的tcp套接字在c#編寫的另一個程序沒有這個問題。另外,當我使用聚類時,數字無緣無故地降低。 – riki

回答

0

當使用socket.io測試https://www.codiva.io時,我遇到了類似的問題。問題在於打開文件描述符的數量以及端口數量的限制。它在Ubuntu Linux中,默認限制約爲4k。 這可能與此有關。

+0

在我正在測試的Windows機器上,當我在c#中編寫服務器和客戶機時,我能夠打開16k +連接。 – riki

0

這篇文章可以幫助你前進的道路:http://drewww.github.io/socket.io-benchmarking/

我知道同樣的問題,所以我最後寫一個小測試(使用XHR輪詢)時看到的連接開始失敗(或落後)。我發現(在我的情況下)套接字開始在大約1400-1800個併發連接中動作。