2011-09-21 23 views
10

क्या वेबसाकेट बैंडविड्थ को बचाने के लिए डेटा संपीड़न के लिए समर्थन प्रदान करता है? विकल्प क्या उपलब्ध हैं? जेसन के स्थान पर बिज़सन का एक संभावित समाधान उपयोग किया जा सकता है।वेबसॉकेट डेटा संपीड़न

उत्तर

-3

एन्क्रिप्शन बंद होने और संपीड़न अधिकतम के साथ एक एसएसएच कनेक्शन के माध्यम से आप सब कुछ सुरंग कर सकते हैं?

उदा .:

ssh -N -g -f -C -o CompressionLevel=9 -o Cipher=none [email protected] -L 6999:172.16.1.218:3129

1

WebSocket चश्मा इस तरह के Deflate-धारा के रूप में एक्सटेंशन, अनुमति देते हैं। हालांकि, यह क्लाइंट और सर्वर द्वारा समर्थित या हो सकता है।

आप जावास्क्रिप्ट-आधारित ज़िप या अन्य संपीड़न एल्गोरिदम का उपयोग करना चाह सकते हैं।

3

वेबसाईट्स बैंडविड्थ को सहेजने का पहला तरीका है एकाधिक (द्वि-दिशात्मक) संदेशों के लिए कनेक्शन खोलना। जब तक इसकी आवश्यकता होती है तब तक कनेक्शन खुला रहता है। इसका मतलब है कि पुराने लेनदेन जैसे प्रत्येक लेनदेन के लिए एक नए कनेक्शन पर बातचीत करने की आवश्यकता नहीं है। संदेशों में स्वयं हेडर जानकारी होती है जो निर्दिष्ट करती है कि आने वाला संदेश टेक्स्ट या बाइनरी है, और "पेलोड" कितना समय है।

आप अपनी सेवा को जो भी चाहें संदेशों की व्याख्या कर सकते हैं। विशिष्ट संपीड़न संबंधित डेटा एक्सटेंशन के माध्यम से व्यक्त किया जा सकता: मानक की धारा 9 देखें: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-15#section-9

मानक संगठन संपीड़न विस्तार के लिए एक काम मसौदा उत्पादन किया गया है: http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-00

3

वर्तमान WebSockets प्रोटोकॉल मसौदा एक संपीड़न विस्तार शामिल नहीं है । पहले एक था: डिफ्लेट-स्ट्रीम, जो पूरे डब्ल्यूएस स्ट्रीम को संपीड़ित करके काम करता है। इसकी प्रभावशीलता सीमित है, क्योंकि डब्ल्यूएस ने क्लाइंट-टू-सर्वर फ्रेम मास्किंग पेश की है, मास्क प्रति फ्रेम बदल गया है, और इसके द्वारा, डिफ्लेट एक प्रभावी संपीड़न शब्दकोश रखने में सक्षम नहीं होगा।

फ्रेम-आधारित संपीड़न के लिए एक मसौदा प्रस्ताव है जो इसके आसपास काम करता है, क्योंकि संपीड़न शब्दकोश मास्किंग से पहले पेलोड के लिए बनाए रखा जाता है।

संबंधित मुद्दे