मैं जेटी वेबसाइट्स सर्वलेट को कार्यान्वित कर रहा हूं। जब सर्वर को नया कनेक्शन प्राप्त होता है, तो मैं एक संदेश भेजना चाहता हूं जो websocket के onopen फ़ंक्शन द्वारा पढ़ा जाएगा। मैं चाहता हूं कि यह संदेश केवल खुले के दौरान भेजा जाए और नियमित कनेक्शन का उपयोग न करें। SendMessage() फ़ंक्शन। क्या यह करना मुमकिन है? और कैसे?जब कोई वेबस्केट कनेक्शन खोला जाता है तो डेटा भेजना संभव होता है
उत्तर
प्रोटोकॉल में इसके लिए कोई समर्थन नहीं है लेकिन आप स्वयं को कुछ खराब कर सकते हैं।
- जब आपका सर्वर एक हैंडशेक पूरा करता है, तो उस प्रारंभिक संदेश को संग्रहीत करें जिसे आप किसी ग्राहक को देना चाहते हैं।
- अपने क्लाइंट के
onopen
फ़ंक्शन में, "प्रारंभिक संदेश पढ़ें" अनुरोध भेजें। - अपने सर्वर में, जांचें कि इस क्लाइंट ने अपना प्रारंभिक संदेश नहीं पढ़ा है; संदेश के साथ जवाब; एक झंडा सेट करें जिसमें कहा गया है कि प्रारंभिक संदेश भेजा गया है।
- आपका ग्राहक और सर्वर अब दोनों संदेश भेजने के लिए स्वतंत्र हैं।
क्वेरी स्ट्रिंग को न भूलें। यह वेबसाकेट यूआरएल में मान्य है।
new Websocket('ws://yoursite.com/path?a=1&b=2&c=3')
फिर आप डेटा को पुनर्प्राप्त करने के लिए सर्वर पक्ष पर इस यूआरएल को आसानी से पार्स कर सकते हैं।
या फिर आप सर्वर की तरफ यूआरएल कैसे पार्स करते हैं? यूआरएल खुद ही उपलब्ध है? –
शायद @PathParam के विकल्प का भी उल्लेख करना चाहिए ... देखें [यह उत्तर] (https://stackoverflow.com/questions/21559260/how-do-i-pass-a-parameter-to-the-onopen- विधि-साथ-jee7-WebSockets) –
धन्यवाद, मैं सोच रहा था कि ऑनलाइन खोज करते समय मुझे कुछ याद आया होगा या नहीं। मैं आपके द्वारा सुझाए गए दृष्टिकोण का पालन करूंगा। – DPD