का उपयोग कर HTTP बंद का पता लगाने मेरे mochiweb एप्लिकेशन में, मैं एक लंबे समय तक आयोजित HTTP अनुरोध का उपयोग कर रहा हूं। मैं पता लगाने के लिए जब उपयोगकर्ता के सिलसिले मर गया था, और मैं पता लगा कि कैसे करना है करके:इनेट
Socket = Req:get(socket),
inet:setopts(Socket, [{active, once}]),
receive
{tcp_closed, Socket} ->
% handle clean up
Data ->
% do something
end.
यह काम करता है: जब उपयोगकर्ता अपने टैब/ब्राउज़र बंद कर देता या पेज ताज़ा करता है। हालांकि, जब इंटरनेट कनेक्शन अचानक मर जाता है (वाईफ़ाई सिग्नल अचानक अचानक खो जाता है), या जब ब्राउज़र असामान्य रूप से दुर्घटनाग्रस्त हो जाता है, तो मैं एक टीसीपी बंद करने में सक्षम नहीं हूं।
क्या मुझे कुछ याद आ रहा है, या क्या यह हासिल करने का कोई और तरीका है?
मैंने बाद के खंड का उपयोग करने पर विचार किया, लेकिन इस मामले में, मेरी प्रक्रिया एक हाइबरनेटिंग प्रक्रिया हो सकती है। क्या बाद के खंड अभी भी एक हाइबरनेटिंग प्रक्रिया के लिए काम करेंगे? – jeffreyveon
नहीं, यह नहीं होगा। जब कोई संदेश भेजा जाता है तो एक हाइबरनेटिंग प्रक्रिया उठ जाती है। कोई हाइबरनेशन टाइमआउट नहीं है, इसलिए जागने के लिए आपको देरी संदेश दिया गया है। – Christian