2014-09-17 10 views
8

मैं एक वेबस्केट का उपयोग कर अपाचे काफ्का से ब्राउज़र को संदेश स्ट्रीम करने के लिए एक ऐप लिख रहा हूं। जब सर्वर थोड़ी देर के लिए संदेश नहीं ले रहा है और ऑफसेट पीछे हो जाता है, तो वेबसाइकिल 1000 या 2000 संदेशों के बाद बंद हो जाती है। संख्या प्रत्येक टेस्ट रन के बीच वैकल्पिक लगती है। संदेश utf8 हैं और आम तौर पर 8 बाइट टुकड़ों में लंबाई में 130-140 बाइट्स के आसपास होते हैं।वेबसाकेट 1000 संदेशों के बाद बंद हो जाता है

जब ऑफ़सेट पकड़ा जाता है और थोड़ा धीमी गति से संदेश आ रहे हैं, तो यह बहुत लंबा रहता है, लेकिन कभी-कभी कुछ समय के लिए खुला होने के बाद यादृच्छिक रूप से बंद हो जाएगा।

सर्वर की तरफ मैं ट्विस्टेड के साथ ऑटोबहन का उपयोग कर रहा हूं, यह kafka-python लाइब्रेरी है, और ब्राउज़र पक्ष पर मूल वेबसाकेट ऑब्जेक्ट है। दोनों सिरों को हर मामले में 1006 त्रुटि कोड (अप्रत्याशित बंद) प्राप्त होता है।

मैंने वर्तमान में केवल आरएचईएल और ओएसएक्स पर फ़ायरफ़ॉक्स 31 के साथ इसका परीक्षण किया है। सर्वर का पायथन संस्करण 2.6.6 है। उन्नयन करना मुश्किल होगा, इसलिए दुर्भाग्य से मैं यह नहीं देख सकता कि कोई नया पायथन संस्करण इसे ठीक करता है या नहीं; हालांकि अगर यह निश्चित रूप से मुद्दा है तो यह किया जा सकता है।

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

+2

क्या आपके पास इसके लिए कुछ कोड नमूना है? –

उत्तर

0

कोड नमूना के बिना, मैं जिन समस्याओं के बारे में सोच सकता हूं उनमें से एक यह है कि आप WebSocket PING/PONG फ़्रेम को प्रबंधित नहीं कर रहे हैं और इसलिए ब्राउज़र किसी बिंदु पर निष्क्रिय निष्क्रिय मानता है।

आप इसे आजमा सकते हैं: https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/websocket/ping

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