डिस्कनेक्ट कर दिया गया मैं इस तरह एक सर्वर करने के लिए अपने कनेक्शन बनाने: किसी अन्य विधि है, जहां मैं इस प्रोटोकॉल वस्तु पर एक संभाल में अबमैं इसकी जांच कैसे करते हैं कि कोई twisted.internet.protocol उदाहरण
connection = TCP4ClientEndPoint(reactor, server_host, server_port)
factory = Factory()
factory.protocol = Protocol
protocol = yield connection.connect(factory)
protocol.doSomething() # returns a deferred
, मैं परीक्षण करना चाहता हूं कि प्रोटोकॉल अभी भी जुड़ा हुआ है, जैसे कुछ:
if protocol.isConnected():
doSomethingElse()
क्या ऐसा करने का कोई तरीका है। मैंने मुड़ दस्तावेज को देखा और एक प्रासंगिक विधि नहीं मिल सका। कनेक्शन में ध्वज सेट करना लॉस्ट() कॉलबैक एक विकल्प है, लेकिन मैं सोच रहा था कि क्या मैं ऐसा करने से बच सकता हूं।
धन्यवाद! मैं मोड़ के साथ डिजाइन प्रथाओं से बहुत परिचित नहीं हूँ। जीवन चक्र विधियों से, क्या आपका मतलब है कि मुझे कनेक्शन में अपना पूरा काम करना चाहिए() कॉलबैक, और कभी भी प्रोटोकॉल की तरह कुछ स्पष्ट रूप से कॉल करने की आवश्यकता नहीं है। कुछ()? – AnkurVj
हां। कॉलबैक विधियों से सभी आवश्यक व्यवहार चलाकर, आप ट्रैकिंग स्थिति की आवश्यकता से बचते हैं (जो आमतौर पर त्रुटि-प्रवण होता है) क्योंकि जब आप इसे करने की ज़रूरत होती है तो आप केवल सामान करते हैं। ध्यान दें कि यह ** वांछनीय ** है, लेकिन हमेशा ** संभव नहीं **। कुछ डिज़ाइनों को उपरोक्त की तरह झंडे की आवश्यकता होती है। इसे टालने का प्रयास करें, लेकिन सर्वोत्तम अभ्यास का पालन करने के प्रयास में अपने कोडबेस को बर्बाद न करें :) – slezica
दरअसल। मुझे कॉलबैक में यह सब करना मुश्किल था! उदाहरण के लिए मुझे प्रोटोकॉल ऑब्जेक्ट को कनेक्ट करने के बाद कुछ अतिरिक्त चर देना था और इससे पहले कि यह कुछ भी हो, लेकिन यह नहीं पता था कि यह कैसे करें! मुझे 'प्रोटोकॉल.वल = वैल' करना था और फिर स्पष्ट रूप से 'self.do कुछ()' करने के बजाय 'connection.do कुछ() 'को' कनेक्शन मेडे()' कॉलबैक – AnkurVj