2010-09-27 11 views
10

मैं विनिर्देश और वेबसाइकिलों के उपयोग के बारे में कई उदाहरणों के माध्यम से पढ़ रहा था। लगभग सभी वे websockets का उपयोग कर यूटीएफ -8 या एएससीआई संदेश हस्तांतरण के बारे में बात करते हैं।वेबसाकेट

नवीनतम हाइबी websocket spec ने बाइनरी स्थानांतरण के लिए समर्थन का अनुरोध किया। REQ 6 in hybi spec

इसके अलावा मैं कहीं कि क्रोम hybi का समर्थन करता है पढ़ें। लेकिन नवीनतम रिलीज क्रोम 7.0 केवल तभी काम करता है जब draft-hixie pywebsocket config में चुना जाता है।

क्या किसी ब्राउज़र को हाइबी स्पेक के लिए समर्थन है? भले ही यह देव है, ठीक है।

+2

मुझे लगता है कि अब तक आप इसे जान लेंगे, लेकिन सभी के लिए एक सामान्य अपडेट के रूप में - क्रोम कैनरी अब इसका समर्थन करता है। – pimvdb

उत्तर

7

थोड़ा समय से पहले गैर- UTF-8 (अर्थात बाइनरी) एन्कोडिंग WebSockets में समर्थित है हो सकता है।

मैं क्लाइंट और सर्वर पर बेस 64 एन्कोड/डिकोड उपयोग करने का सुझाव। WebSockets समर्थन वाले सभी ब्राउज़रों में window.atob (base64 decode) और window.btoa (base64 एन्कोड) है। अधिकांश भाषाओं में आप एक वेबस्केट सर्वर लिख सकते हैं जिसमें बेस 64 पुस्तकालय हैं (यानी पायथन में बेस 64 मॉड्यूल)।

यदि आप बाइनरी डेटा स्थानांतरित करना चाहते हैं तो आप noVNC के साथ wsproxy में दिलचस्प हो सकते हैं जो एक वेब आधारित VNC क्लाइंट है। wsproxy (एक सी और पायथन संस्करण है) जेनेरिक टीसीपी सॉकेट प्रॉक्सी के लिए एक वेबसाकेट है। यह बेस 64 एन्कोड/ब्राउज़र से सभी ट्रैफिक को डीकोड करता है। आप इसे वेबस्केट सक्षम ब्राउज़र से किसी भी प्रकार के टीसीपी पोर्ट से कनेक्ट करने के लिए उपयोग कर सकते हैं। क्योंकि यह विश्वास है या नहीं, जावास्क्रिप्ट संस्करण atob/btoa की तुलना में थोड़ा तेज है

ध्यान दें, noVNC बेस 64 एन्कोड/डिकोड की एक Javascript क्रियान्वयन है।

अस्वीकरण: मैंने नोवीएनसी बनाया है।

+1

अद्यतन: वेबसाकेट प्रोटोकॉल का आईईटीएफ -07 ड्राफ्ट अंतिम कॉल में है और इसमें बाइनरी फ्रेम समर्थन है। यहां बाइनरी समर्थन जोड़ने के लिए एपीआई परिवर्तनों की चर्चा के साथ एक बग है: http://www.w3.org/Bugs/Public/show_bug.cgi?id=12102 – kanaka

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