2016-05-13 147 views
0

服務器的NodeJS的Socket運行到256個最大連接

var WebSocketServer = require('ws').Server 
 
    , wss = new WebSocketServer({port: 978});

有關係統的更多信息:

的ulimit -a | grep文件

core file size   (blocks, -c) 0 
file size    (blocks, -f) unlimited 
open files      (-n) 999999 
file locks      (-x) unlimited 

系統是Ubuntu 14,1 GB RAM,256 MB連接上有500 MB空閒空間,因此內存不是問題。

當連接到達時,它達到256個連接,然後停止。

+0

你用什麼作爲客戶端來測試256個連接? ...是否可以在客戶端沒有新的連接打開? – Myst

+0

我使用javascript socket的瀏覽器頁面作爲客戶端。打開多個選項卡,並在每個新頁面上達到256後,將出現一個錯誤「套接字仍處於連接狀態」。 –

+0

Myst,你是對的。我在Chrome中打開了256個選項卡,分別位於兩個不同的Chrome瀏覽器窗口中(如一個是200個選項卡,另一個是100個選項卡)。但是,而不是300連接,我被困在256連接。以爲這是一個服務器問題,但後來我試圖從不同的位置/相同的位置不同的瀏覽器(Opera)打開另一個連接,並獲得更多的連接。似乎Chrome瀏覽器可以打開256個客戶端套接字。 –

回答

0

注意一定要注意nodejs的方式,如果你的要求是服務器250加上資源一次。請運行不同端口的多個nodejs程序實例,例如9871,9872,9873等,然後配置apache或nginx在端口978上監聽,並將匹配代理到底層nodejs端口。

+0

假設我有幾個nodejs實例在4個不同的端口上運行。我如何將它與Apache連接? –