2014-05-09 27 views
3

如果沒有,是否有其他選擇來節省帶寬?如果是的話,它是否在第三方nodejs模塊等更深層次上完成?流星的DDP信息是壓縮的嗎?

+0

DDP消息通過SockJS發送,目前不使用壓縮。有關如何減少發送大量數據的加載時間的建議,請參閱http://stackoverflow.com/a/21835534/586086。 –

+0

如果sockjs使用xhr長輪詢與gzip,那麼他們被壓縮:) – imslavko

回答

0

要獲得DDP一個手柄看看驚人的東西Arunoda Susiripala最近

https://coderwall.com/p/rybkjghttp://meteorhacks.com/introduction-to-ddp.html公佈。

這些會給你一個更好的理解。

+0

良好的介紹。我在推文後立即閱讀這篇文章。 – Dave

+0

接受答案? –

+1

你目前的答案並沒有真正解決DDP消息是否通過線路壓縮的問題。 Andrew Mao和imslavko的評論回答了這個問題。所以,如果消息使用websockets,那麼它們不會被壓縮。如果使用輪詢,則可以使用gzip壓縮。 – Dave

0

是的這是支持你只需要設置env變量SERVER_WEBSOCKET_COMPRESSION到他們使用的包所需的配置permessage-deflate。但是你需要設置一個可解析的JSON。

所有這個包的選項都可以在這裏faye/permessage-deflate-node

因此,例如,你可以有VAR

SERVER_WEBSOCKET_COMPRESSION={"level":7, "maxWindowBits":13, "memLevel":7, "requestMaxWindowBits":13} 

這是通過WebSocket的擴展,它實際執行上,如下SERVER_WEBSOCKET_COMPRESSION以下操作完成:

var websocketExtensions = _.once(function() { 
var extensions = []; 

var websocketCompressionConfig = process.env.SERVER_WEBSOCKET_COMPRESSION 
    ? JSON.parse(process.env.SERVER_WEBSOCKET_COMPRESSION) : {}; 
if (websocketCompressionConfig) { 
extensions.push(Npm.require('permessage-deflate').configure(
    websocketCompressionConfig 
)); 
} 

return extensions; 
}); 

因此,如果您的JSON不可通過,您的服務器將爆發異常。