HTTP

2011-01-27 18 views
6

पर रीयल-टाइम द्वि-दिशात्मक JSON-RPC संचार मैं एक JSON-RPC सर्वर बना रहा हूं जो HTTP पर अनुरोध स्वीकार करता है। मैं द्वि-दिशात्मक संचार (दोनों ग्राहक और सर्वर अनुरोध भेज सकते हैं) का समर्थन करना चाहते हैं, विशिष्ट उपयोग केस प्रकाशित/सब्सक्राइब आर्किटेक्चर है जहां एक ग्राहक subscribe(X) अनुरोध भेजता है और changed(X) अनुरोध (वास्तविक) वास्तविक समय में अनुरोध प्राप्त करता है।HTTP

  • लंबे मतदान
  • WebSockets
  • मतदान पर कुकी-आधारित सत्र मॉडल
  • स्ट्रीमिंग (HTTP कनेक्शन खुला रखने का उपयोग कर कॉल: जहाँ तक मुझे पता है, वहाँ HTTP के साथ इस लागू करने के लिए कई तरीके हैं)
  • ऊपर

में से कुछ का एक संयोजन क्या मैं के लिए देख रहा हूँ एक समाधान है कि स्वीकार किए जाते हैं इंटरनेट मानकों के आधार पर किया जाता है (यदि संभव हो), एक वेब ब्राउज़र से उपयोग करने योग्य और क्लाइंट पक्ष पर काम करने में आसान है। अब तक, मैं स्ट्रीमिंग चीज का समर्थन करता हूं (ट्विटर, कॉच डीबी इसे इस तरह से करता है), लेकिन मुझे यकीन नहीं है कि ब्राउज़र और जेएसओएन-आरपीसी पुस्तकालयों में यह कितना अच्छा है। इसके अलावा, ऐसा करने के अन्य तरीके भी हो सकते हैं जिनके बारे में मुझे जानकारी नहीं है।

अग्रिम धन्यवाद।

उत्तर

3

मुझे लगता है कि आपको अपना काम पूरा करने के लिए socket.io पर एक नज़र रखना चाहिए। यदि आप इस वीडियो को लेखक से देखना चाहते हैं तो आप कर सकते हैं: "Socket.IO Workshop: Guillermo Rauch"। क्लाइंट के रूप में दोनों सर्वर पर काम करना आसान है। मैंने एक साधारण नमूना pubsub using redis on top of socket.io बनाया है।

+0

धन्यवाद। मेरा HTTP सर्वर घटक पहले से मौजूद है (Erlang में) लेकिन socket.io का दृष्टिकोण बेहद प्रेरणादायक है। –

3

मेरे ज्ञान के लिए, स्ट्रीमिंग एफएफ, क्रोम द्वारा समर्थित है (उन मुद्दों को बफर करना जो अनुप्रयोग/ऑक्टेट-स्ट्रीम के डेटाटाइप या काम करने के लिए प्रस्तावना चाहते हैं) और IE8 (थोड़ा XDomainRequest के माध्यम से)। मुझे ओपेरा के बारे में पता नहीं है।

मुझे वास्तव में किसी भी धूमकेतु उद्योग मानकों के बारे में पता नहीं है, Bayeux शायद निकटतम है। यह देखना मुश्किल है कि फेसबुक/जीमेल/ट्विटर कैसे करता है क्योंकि सभी कोड खराब हो जाते हैं, और सभी ब्राउज़रों को सबकुछ कैसे संभाला जाता है, इस बारे में अधिक जानकारी प्राप्त करना बहुत मुश्किल है।

और भी मुश्किल यह है कि आपको एक विशेष सर्वर का उपयोग करने की आवश्यकता होगी, इसे खोलने के लिए कई कनेक्शनों को थ्रेड पूलिंग आदि की आवश्यकता होगी .. एक सामान्य सर्वर बहुत तेज उड़ाएगा।

यह एक बहुत शक्तिशाली डिजाइन है यदि आप इसे विश्वसनीय रूप से काम करने के लिए प्राप्त कर सकते हैं।

+0

+1 Bayeux लिंक के लिए +1! – keatch

+0

टोरनाडो का दावा है कि हजारों समानांतर कनेक्शन का समर्थन कर सकता है और इसका उपयोग FriendFeed (अब फेसबुक) पर किया जाता है। यह ओपन-सोर्स http://www.tornadoweb.org/ भी है। Socket.io के लिंक के लिए – keatch

1

यदि कोई जावा कार्यान्वयन में रूचि रखता है तो मैंने इसके बारे में एक नमूना ऐप और ब्लॉग पोस्ट लिखा है। यह जावा, मेवेन, धूमकेतु, Bayeux, वसंत का उपयोग करता है। http://jaye.felipera.cloudbees.net/ http://geeks.aretotally.in/thinking-in-reverse-not-taking-orders-from-yo

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

  • कोई संबंधित समस्या नहीं^_^