मैं वर्तमान में Google के ऐप्पाइन पर अपने जावा 8 आधारित वेबएप (मानक वातावरण) के उपयोगकर्ता संदेश और सूचना प्रणाली के लिए HTTP लॉन्ग पोलिंग का उपयोग करता हूँ। मैं सॉकेट एपीआई के साथ इसे लागू करना पसंद करता हूँ।
पर Google का प्रलेखन जावा सॉकेट एपीआई के बारे में यह उल्लेख करता है:
महत्वपूर्ण: जावा 8 रनटाइम में अनुप्रयोग उपयोग कर सकते हैं मूल जावा सॉकेट कोई प्रतिबंध नहीं के साथ, NIO वर्गों और के उपयोग सहित उनके तरीके।
तो मैं एक उलझन में हूँ कि मुझे क्या होना चाहिएवास्तव में, websockets या देशी जावा सॉकेट्स का उपयोग करना? वहाँ एक अंतर सही है। जाहिर तौर पर जावा 8 रनटाइम ने सॉकेट एपीआई को काफी बदल दिया है, क्या यह वेबस्केट्स के बजाय देशी जावा सॉकेट का उपयोग करना संभव है?
उत्तर:
जवाब के लिए 2 № 1जावा 7 रनटाइम, जिसे अब हटा दिया गया है, एक विशेष सैंडबॉक्स वाला वातावरण है। जैसे, इसकी जेवीएम पर आप क्या कर सकते हैं, इसके संदर्भ में कई प्रतिबंध हैं, उदाहरण के लिए, थ्रेडिंग के बारे में, मानक जावा लाइब्रेरी से उपलब्ध कक्षाएं, सॉकेट, सुरक्षा प्रबंधक, आदि।
जावा 8 रनटाइम में एक बहुत भिन्नता हैबुनियादी ढांचे, और अधिकांश प्रतिबंध हटा दिए गए हैं। यह मानक सार्वजनिक जावा लाइब्रेरी का समर्थन करता है (जिसमें निश्चित रूप से देशी जावा सॉकेट और एनआईओ शामिल हैं), न कि उनमें से केवल 7 वें रनटाइम के रूप में श्वेतसूचीबद्ध उपसमूह। आपके द्वारा लिंक किए गए डॉक्टर से उद्धरण जावा 7 रनटाइम पर जावा 8 रनटाइम की श्रेष्ठता का विज्ञापन कर रहा है।
मैं कहता हूँ कि यह आप पर निर्भर है कि आप देशी जावा सॉकेट का उपयोग करेंगे या नहीं। मानक जावा लाइब्रेरी का उपयोग करके "बुरी बात नहीं है, कम से कम।
संपादित करें: ये अतिरिक्त डॉक्स आपकी रुचि के भी हो सकते हैं:
- https://cloud.google.com/appengine/docs/standard/java/outbound-requests
- https://cloud.google.com/appengine/docs/standard/java/issue-requests#advantages_to_using_standard_java_calls_and_not_url_fetch_in_java_8
जवाब के लिए 0 № 2
यह विशिष्ट Google दस्तावेज़ बात कर रहा हैअपने एप्लिकेशन के बाहर एक वेबसॉकेट सर्वर में जावा क्लाइंट बनाने के बारे में - कि यह java 8 nio के बारे में क्यों बात करता है। उस पृष्ठ में दिए गए उदाहरण भी।https://github.com/googlearchive/appengine-sockets-python-java-go/tree/master/java_socket_demo ) एक डीएनएस सर्वर को क्वेरी करने के लिए एक वेबस्केट क्लाइंट बनाने का तरीका बताता है।
अब अगर आप अपने जावा एप्लिकेशन से एक वेबसोकेट प्रदान करना चाहते हैं, तो मुझे Google के प्रलेखन पर कोई दस्तावेज नहीं मिला।