2008-08-12 26 views
5

को फिर से कनेक्ट नहीं कर सकता है मुझे कनेक्ट टाइमआउट के बाद एक टीसीपी श्रोता को कनेक्ट करने में समस्या हो रही है (सॉकेट और एक्सएमएल सॉकेट कक्षाओं के माध्यम से)।एक्शनस्क्रिप्ट 3.0 सॉकेट

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

स्पष्ट और/या संक्षेप में:

किसी भी होस्ट/पोर्ट Socket.connect() या XMLSocket.connect() को दी जोड़ी के लिए, यदि कॉल विफलताओं, बाद में किसी भी कनेक्ट() किसी अन्य सॉकेट करने के लिए कॉल (या XMLSocket) फ्लैश एप्लेट के जीवनकाल के भीतर उसी होस्ट/पोर्ट जोड़ी के लिए उदाहरणों को अनदेखा कर दिया गया है। (कम से कम जहां तक ​​मैं एक पैकेट स्निफर का उपयोग कर बता सकता हूं।)

मैंने सॉकेट के पूल का उपयोग करके कई सॉकेट विधियों को नष्ट करने और वस्तुओं को दोबारा बनाने की कोशिश की है, और कई अन्य तरीकों से मुझे अभी याद नहीं है ; सब कुछ फायदा नहीं हुआ।

मेरा वर्तमान समाधान माता-पिता कॉल के माध्यम से अभिभावक वेबपृष्ठ को सूचित करना है और इसे मेरे एप्लेट को पुनः लोड करना है। यह एक सुंदर समाधान नहीं है, और मैं समस्याओं के लिए वर्कअराउंड लागू करने वाला नहीं हूं यह कारणों से, क्योंकि फ्लैश सॉकेट कनेक्शन को सही तरीके से संभाल नहीं सकता है।

मुझे कुछ बहुत आसान याद आना चाहिए।

कोई भी विचार?

1: मुझे पता है कि आप वास्तव में वस्तुओं को नष्ट नहीं कर सकते हैं; मैं बस उन सभी संदर्भों को हटा देता हूं और सर्वश्रेष्ठ के लिए आशा करता हूं। मैंने इस मामले में स्पष्ट रूप से जीसी का आह्वान करने की कोशिश नहीं की है। (हालांकि मुझे लगता है कि मैं एक सरणी के अंदर सॉकेट डालने और का उपयोग कर हटाना कोशिश किया था।)


हाँ, यह उम्मीद के रूप में यदि कनेक्शन सफल रहता है काम करता है (भले ही कनेक्शन पर बाद में चला जाता है।)

यह ट्रिगर करने का एकमात्र ईवेंट वह मामला है जब सर्वर बिल्कुल प्रतिक्रिया नहीं देता है; ऐसा लगता है जैसे फ्लैश मेजबान/पोर्ट संयोजन को "ऑफ़लाइन" के रूप में चिह्नित करता है और एप्लेट के जीवनकाल के लिए इसे और अधिक पैकेट भेजने को परेशान नहीं करता है।

मुझे कनेक्शन के सक्रिय अस्वीकार पर संदेह है (उदा। होस्ट ऑनलाइन है लेकिन बंदरगाह को नहीं सुन रहा है) इसका कारण नहीं है।

मुझे सॉकेट से किसी अन्य प्रकार की कोई त्रुटि संदेश या प्रतिक्रिया नहीं मिली है।

क्या आपने कभी एक ही होस्ट/पोर्ट जोड़ी में एक से अधिक बार कनेक्ट() को बुलाया है, जब पहला वाला असफल रहा? आपको कैसे पता चला कि पहला कनेक्ट() असफल रहा? और बाद में कनेक्ट() कॉल से पहले, क्या आपने सॉकेट को रीसेट करने के लिए कुछ भी किया था?

+0

क्या सर्वर उपलब्ध है तो कनेक्शन सही तरीके से सफल होता है? जब यह 3 बार के बाद विफल रहता है, तो क्या आपको कोई त्रुटि संदेश मिलता है? मैंने सॉकेट के साथ बहुत काम किया है और इस मुद्दे में कभी भाग नहीं लिया है। –

उत्तर

3

यह अनसुलझा बग FP-269 से संबंधित हो सकता है जो बदले में FP-67 के समान रूट कारण हो सकता है।

यह निर्माण वर्तमान सार्वजनिक बीटा पर labs.adobe.com

एडविन वोंग पाया रिलीज में तय किया जाना चाहिए - [09/23/08 04:49]

मैं सलाह देते हैं आप latest public beta एक शॉट देते हैं ...

+0

धन्यवाद, मुझे एडोब का बग डेटाबेस कभी नहीं मिला था। अतीत में उनमें से बहुत से जमा कर सकते थे ... – aib