How should a HTTP server (using sockets) detect that the client is no longer connected and abort processing? -
मैं एक मूल HTTP सर्वर को सी ++ में कार्यान्वित कर रहा हूं, boost :: asio।
I प्रत्येक अनुरोध को संसाधित करने के लिए, मैं अंशों में डेटा लिखता हूं, अस्तिष्क से। अगर किसी भी समय मुझे पता था कि क्लाइंट अब कनेक्ट नहीं था, तो मैं प्रसंस्करण को रद्द करना चाहता हूं, उदा।
मुझे लगता है कि यह पहले से कुछ बार पूछा गया है, उदाहरण के लिए:
लेकिन मैं उन्हें पढ़ रहा हूं, मुझे अभी भी यकीन नहीं है कि यहां एक अच्छा तरीका क्या है।
- क्या मैं क्लाइंट सॉकेट से पढ़ने की कोशिश कर सकता हूं? (यहां तक कि कि HTTP क्लाइंट दूसरे छोर पर किसी भी डेटा भेजने नहीं जा रहा है)
- क्योंकि मैं asynchronously लिख रहा हूँ (boost :: asio :: async_write का उपयोग करके), मुझे नहीं लगता यदि ग्राहक अब नहीं है तो प्रतिक्रिया प्राप्त करने के लिए
यदि ग्राहक डिस्कनेक्ट हो जाता है, तो आपको चाहिए आपके एसिंक्रोनस लेखन को एक उपयुक्त त्रुटि कोड के साथ विफल हो। जब आपके पूर्णता वाले हैंडलर को एक त्रुटि के साथ लागू किया जाता है, तो उसके बाद गर्भपात की प्रक्रिया।
Comments
Post a Comment