में पता लगाने उपयोगकर्ता रद्द/ग्राहक वियोग हाल ही में हम पता लगाने के लिए की जरूरत थी, जब एक ग्राहक गर्भपात/अचानक एक सर्वर से डिस्कनेक्ट हो गई। अचानक से मेरा मतलब है जरूरी नहीं कि एक ब्राउज़र की रोकें बटन के माध्यम से, वास्तव में, ग्राहक (का उपयोग कर soapUI), इसलिए, वियोग को रोकने के रूप में सरल हो सकता है पोस्ट के माध्यम से भेजा एक सोप संदेश (था Ctrl + C) क्लाइंट ने इसे प्रतिक्रिया प्राप्त करने से पहले। हमने समाधान खोजने की कोशिश करने में कई दिन बिताए, जब तक हमें पता चला कि कैसे। तो, यह शायद एक निहित प्रतिक्रिया के साथ एक प्रश्न हो सकता है, लेकिन लक्ष्य जानकारी प्रदान करना है जो एक ही ज़रूरत के साथ कई अन्य लोगों की मदद कर सकता है।पीएचपी
यहाँ बुनियादी कोड हम ग्राहक की वियोग का पता लगाने के लिए हमारे सर्वर का इस्तेमाल किया है:
<?PHP
ignore_user_abort(true); // Continue running the script even when the client aborts/disconnects
sleep(5); // Sleep 5 seconds so we can stop the client before it recieves a reponse from the server
echo "RESPONSE sent to the client"; // Response to the Request
ob_flush(); // Clean output buffer
flush(); // Clean PHP's output buffer
usleep(500000); // Sleep half a second in order to detect if Apache's server sent the Response
echo " "; // Echo a blank space to see if it could be sent to the client
ob_flush(); // Clean output buffer
flush(); // Clean PHP's output buffer
if(connection_status() != 0) { // Client aborted/disconnected abruptly
return -1;
}
else { // Client recieved the response correctly
return 0;
}
?>
हैंडी, लेकिन यह एक प्रश्नोत्तर साइट है, न कि जमीन पर डंपिंग युक्तियाँ। –
@MarcB [अपने प्रश्न पूछना और जवाब देना ठीक है] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)। @ नॉरबर्टो: आपको प्रश्न में समाधान शामिल नहीं करना चाहिए, लेकिन इसे उत्तर के रूप में पोस्ट करना चाहिए। – lortabac
मेरे लिए यह केवल php दस्तावेज़ के लिए एक अनावश्यक दस्तावेज है। इसके अतिरिक्त आपके प्रश्न का उत्तर बस "कनेक्शन_स्टैटस() फ़ंक्शन का परिणाम देखें"। – mosch