2011-07-25 75 views
8

titel說明了所有 - 我想從服務器發送到客戶端的事件(或消息)是否存在最大大小?node.js/socket.io是否有最大消息/事件大小

我想一個JSON字符串發送到客戶端,它看起來是這樣的:

[{"id":"4e25434f0f110ec101000005","media":"4fb135d508e972664c5adf3.jpg"}, 
{"id":"4e2545f30f110ec101000021","media":"d09b745414e251695aa33e04.jpg"}, 
{"id":"4e2554ce7bcfb24702000012","media":"076eea872411e433b9.png"}, 
{"id":"4e255bc4f34a41cb02000010","media":"c2af3db4707db3ece.png"}] 

如果數組將包含如200件物品,會不會崩潰?

回答

7

它不會崩潰,我不小心通過Socket.IO發送了250個極端大型對象的數組,並且它沒有任何問題地處理它。

你可以看到它發送一個HTTP請求的250個項目的JSON對象,它可能只需要一段時間,用戶就可以下載所有..這基本上是唯一的限制,你會有。

+0

問題:大對象之後發出的消息會發生什麼?他們是否會很遲纔到達(轉移完成後)還是會以錯誤的順序到達消息?我想這兩種情況都是不需要的。 –

5

我不認爲這會崩潰,因爲node.js有一個內置的nagle算法(如果你還沒有禁用它)在發送數據之前緩衝數據。單獨

http://www.nodejs.org/docs/v0.5.1/api/net.html#socket.setNoDelay

Node.js的可以輕鬆應對它進行基準測試的目的我有一個塊(隨機刷新)發送800KB的數據。在另一邊接受了很多時間,但是發送成功了。

相關問題