मैं नेटटी और आईओएस का उपयोग कर एक सर्वर क्लाइंट एप्लिकेशन का निर्माण कर रहा हूं, जब उपयोगकर्ता अपने आईओएस डिवाइस पर वाईफाई बंद कर देता है तो मुझे समस्या का सामना करना पड़ रहा है, नेटटी सर्वर इसके बारे में नहीं जानता है। सर्वर को उस उपयोगकर्ता के लिए क्लीनअप करने और उसे ऑफ़लाइन सेट करने की आवश्यकता है, लेकिन अब जब उपयोगकर्ता फिर से कनेक्ट करने का प्रयास करता है, तो सर्वर बस उसे बताता है कि वह पहले से ही ऑनलाइन है।नेटटी चैनल ने पता लगाया
उत्तर
अगर मैं आपकी समस्या को सही ढंग से समझ में आ: आप के लिए ग्राहक चैनल सर्वर साइड में होने वाली घटनाओं को बंद कर दिया सुनने और कुछ सत्र सफाई करना चाहते हैं,
वहाँ Netty में चैनल की घटनाओं को बंद कर दिया के लिए सुनने के लिए दो तरीके हैं:
1) आपके सर्वर हैंडलर SimpleChannelHandler/SimpleChannelHandler
फैली है, तो आप निम्न विधि ओवरराइड कर सकते हैं और वहाँ
public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception;
2 अपने सत्र सफाई तर्क बारे में) आप चैनल संदर्भ के लिए केवल उपयोग किया है, तो आप कर सकते हैं जी एट चैनल पास भविष्य और, आपका सत्र सफाई तर्क के साथ ChannelFutureListener
अपने क्रियान्वयन रजिस्टर
ChannelFuture closeFuture = channel.closeFuture();
closeFuture.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
//session cleanup logic
}
});
चेक सत्र id और पुनः मध्यस्थता अनुमति देते हैं। या आप कुकी नियंत्रक की तरह कुछ उपयोग कर सकते हैं। क्या मैं विषय प्रश्न पूछ सकता हूं: आईओएस पर आपका ग्राहक नेटटी सर्वर से कैसे इंटरैक्ट करता है? (क्या ढांचे आप क्लाइंट की तरफ उपयोग करते हैं, और क्या विकोडक/एनकोडर उपयोग?)
उपयोग IdleStateHandler
आप पता लगा सकते हैं जब वहाँ निश्चित समय अंतराल में कोई अनुरोध/प्रतिक्रियाओं।
- 1. नेटटी चैनल
- 2. नेटटी - कॉलिंग channel.disconnect() वास्तव में चैनल
- 3. चैनल.इस नेटटी
- 4. पता लगाया गया स्मृति लीक
- 5. नेटटी
- 6. क्या किसी ने यह पता लगाया है कि अमेज़ॅन आरडीएस को प्रतिकृतियां कैसे पढ़ा जाए?
- 7. "सीएलआर ने एक अमान्य प्रोग्राम का पता लगाया" जब एक विस्तार विधि
- 8. एंड्रॉइड का पता लगाया पायरेटेड/क्रैक ऐप
- 9. नेटटी और एनआईओ
- 10. नेटटी 4 - EventLoopGroup - EventLoop - EventExecutor - थ्रेड एफ़िनिटी
- 11. लैपटॉप पावर केबल डिस्कनेक्ट होने पर कैसे पता लगाया जाए?
- 12. नेटटी: संदेश में रिमोट आईपी पता प्राप्त करना
- 13. चैनल
- 14. नेटटी: क्या मुझे चैनल को बंद करना चाहिए यदि यह 'रख-रखाव' कनेक्शन है?
- 15. नेटटी विश्वसनीय रूप से चैनल को बंद/डिस्कनेक्ट कर सकता है?
- 16. जावा इंटरऑप - नेटटी + क्लोजर
- 17. जावा सर्वर सॉकेट चैनल सॉकेट चैनल (कॉलबैक)
- 18. अल्फा चैनल
- 19. नेटटी बनाम अपाचे MINA
- 20. नेटटी एसएसएच हैंडलर सिरदर्द
- 21. नेटटी एसएसएल: ट्रस्टमैनेजर
- 22. नेटटी 4 एकाधिक ग्राहक
- 23. नेटटी बढ़ाएं चैनलबफर आकार
- 24. नेटटी और बाइटऑर्डर
- 25. मेरे ऐप से कॉल करते समय उपयोगकर्ता ने कॉल दबाया या रद्द बटन कैसे पता लगाया है?
- 26. पता लगाएं कि उपयोगकर्ता ने बैक बटन
- 27. कैसे पता चलेगा जब MediaRecorder ने
- 28. कैसे पता चलेगा ViewPager ने एंड्रॉइड
- 29. फेसबुक शेयर सफलता का पता कैसे लगाया जाए? जावास्क्रिप्ट
- 30. किसी ऑब्जेक्ट को कैसे पता लगाया गया है?
ठीक है, मैंने चैनलक्लोज्ड विधि लागू की है, और जब उपयोगकर्ता एप्लिकेशन को उदाहरण बंद कर देता है तो यह ठीक काम करता है, लेकिन यदि उपयोगकर्ता बस अपने वाईफाई कनेक्शन को नुकसान पहुंचाता है, तो इस विधि को नहीं कहा जाता है। –
तो एक इष्टतम पढ़ने निष्क्रिय टाइमआउट के साथ एक IdleStateHandler जोड़ने के लिए बेहतर है। यदि उपयोगकर्ता उस समय से अधिक निष्क्रिय है, तो शायद यह कनेक्शन खो गया मामला हो सकता है, इसलिए अपने सर्वर हैंडलर से IdleStateEvent पर कनेक्शन बंद करें। –
नेटटी के नए संस्करणों में, 'getCloseFuture() '' CloseFuture() 'लगता है – childofsoong