Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ · पाठ

विशिष्ट उपयोगकर्ताओं को लक्षित संदेश

उपयोगकर्ता गंतव्यों, @SendToUser और SimpMessagingTemplate.convertAndSendToUser का उपयोग करके STOMP पर निजी, प्रति-उपयोगकर्ता संदेश भेजें।

पाठ 4, कुल 4 में से13 चरण

विशिष्ट उपयोगकर्ताओं को लक्षित संदेश, CoddyKit पर Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्रसारण से आगे

अब तक संदेश /topic पर जाते थे, जिसे हर सब्सक्राइबर प्राप्त करता है। वास्तविक ऐप्स में निजी संदेशों की भी आवश्यकता होती है: निजी चैट संदेश, व्यक्तिगत सूचना या किसी एक ग्राहक के लिए ऑर्डर अपडेट।

उपयोगकर्ता गंतव्य

Spring /user गंतव्य उपसर्ग का समर्थन करता है। जब कोई क्लाइंट /user/queue/notifications पर सब्सक्राइब करता है, तो Spring इसे प्रति-सत्र एक अद्वितीय कतार में बदल देता है, ताकि संदेश केवल उसी उपयोगकर्ता को मिले।

Principal कहाँ से आता है

लक्षित संदेश-प्रेषण के लिए यह जानना आवश्यक है कि सत्र किसका है। हैंडशेक के दौरान जोड़ा गया Principal (Spring Security या कस्टम हैंडशेक हैंडलर से) उपयोगकर्ता-नाम कुंजी उपलब्ध कराता है।

@SendToUser से भेजना

कंट्रोलर विधि में आप @SendToUser एनोटेशन लगाते हैं। लौटाया गया मान केवल उस उपयोगकर्ता तक पहुँचता है जिसने ट्रिगर करने वाला संदेश भेजा था।

@MessageMapping("/private")
@SendToUser("/queue/reply")
public Note handle(Note in, Principal principal) {
  return new Note("Hi " + principal.getName());
}

क्लाइंट का सब्सक्रिप्शन

क्लाइंट /user उपसर्ग वाले गंतव्य पर सब्सक्राइब करता है। Spring इसे अपने-आप उस क्लाइंट की निजी कतार में बदल देता है।

stompClient.subscribe('/user/queue/reply', (msg) => {
  console.log('Private:', JSON.parse(msg.body));
});

टेम्पलेट से कहीं से भी भेजना

कंट्रोलर के बाहर (जैसे किसी सेवा या निर्धारित कार्य से) किसी विशिष्ट उपयोगकर्ता तक पहुँचने के लिए SimpMessagingTemplate.convertAndSendToUser का उपयोग करें।

messagingTemplate.convertAndSendToUser(
  "alice", "/queue/notifications", new Alert("Payment received"));

समाधान कैसे काम करता है

UserDestinationMessageHandler, /user/{username}/queue/x को वास्तविक सत्र-विशिष्ट गंतव्य में मैप करता है। आप उपयोगकर्ताओं को नाम से संबोधित करते हैं; Spring उनके सक्रिय सत्र ढूँढ लेता है।

प्रति उपयोगकर्ता कई सत्र

एक उपयोगकर्ता फ़ोन और लैपटॉप, दोनों से जुड़ा हो सकता है। convertAndSendToUser उस उपयोगकर्ता के सभी सक्रिय सत्रों तक संदेश पहुँचाता है, इसलिए सूचनाएँ हर उस जगह दिखाई देती हैं जहाँ वह लॉग इन है।

एकल सत्र को लक्षित करना

केवल एक उपकरण तक पहुँचने के लिए, उपयोगकर्ता के हर सत्र में प्रसारित करने के बजाय किसी विशिष्ट simpSessionId को चुनने वाले हेडर भेजें।

SimpMessageHeaderAccessor h = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
h.setSessionId(sessionId);
h.setLeaveMutable(true);
messagingTemplate.convertAndSendToUser(user, "/queue/reply", body, h.getMessageHeaders());

क्लस्टर में उपयोगकर्ता गंतव्य

एकल सर्वर पर साधारण ब्रोकर उपयोगकर्ता गंतव्यों का समाधान मेमोरी में करता है। कई नोड होने पर आपको बाहरी ब्रोकर (RabbitMQ) और UserRegistry प्रसारण की आवश्यकता होती है, ताकि कोई नोड दूसरे स्थान पर जुड़े उपयोगकर्ता तक संदेश पहुँचा सके।

सुरक्षा नोट

किसी क्लाइंट को दूसरे उपयोगकर्ता का गंतव्य चुनने की अनुमति कभी न दें। संदेश हड़पने से रोकने के लिए लक्ष्य हमेशा क्लाइंट द्वारा भेजे गए डेटा से नहीं, बल्कि प्रमाणित Principal से निर्धारित करें।

त्वरित जाँच

प्रति-उपयोगकर्ता संदेश-प्रेषण का अपना ज्ञान जाँचें।

पुनरावृत्ति

आपने निजी संदेश पहुँचाना सीखा:

  • /user उपसर्ग प्रति-सत्र कतारों में मैप होता है
  • @SendToUser मूल संदेश भेजने वाले उपयोगकर्ता को उत्तर देता है
  • convertAndSendToUser कहीं से भी नामित उपयोगकर्ता तक संदेश भेजता है
  • प्रति उपयोगकर्ता कई सत्रों तक एक साथ पहुँचा जाता है; सत्र हेडर से किसी एक को लक्षित करें
  • लक्ष्य हमेशा प्रमाणित Principal से निर्धारित करें
शुरुआत निःशुल्क

एआई शिक्षक के साथ Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “विशिष्ट उपयोगकर्ताओं को लक्षित संदेश” पाठ निःशुल्क है?

हाँ—“विशिष्ट उपयोगकर्ताओं को लक्षित संदेश” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“विशिष्ट उपयोगकर्ताओं को लक्षित संदेश” में मैं क्या सीखूँगा?

उपयोगकर्ता गंतव्यों, @SendToUser और SimpMessagingTemplate.convertAndSendToUser का उपयोग करके STOMP पर निजी, प्रति-उपयोगकर्ता संदेश भेजें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“विशिष्ट उपयोगकर्ताओं को लक्षित संदेश” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. WebSocket इंटरसेप्टर
  2. संदेश कन्वर्टर का अनुकूलन
  3. उपयोगकर्ता सत्र प्रबंधन
  4. विशिष्ट उपयोगकर्ताओं को लक्षित संदेश
← Spring के साथ WebSockets और वास्तविक समय की प्रणालियाँ पर वापस जाएँ