"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो (गोरिल्ला) में किसी क्लाइंट को एक विशिष्ट वेबसॉकेट संदेश कैसे भेजें?

गो (गोरिल्ला) में किसी क्लाइंट को एक विशिष्ट वेबसॉकेट संदेश कैसे भेजें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:563

How to Send a Specific Websocket Message to a Client in Go (Gorilla)?

गो में एक ग्राहक को एक विशिष्ट वेबसॉकेट संदेश भेजना (गोरिल्ला का उपयोग करके)

वेबसॉकेट कम-विलंबता संचार के लिए एक कनेक्शन-उन्मुख प्रोटोकॉल प्रदान करते हैं क्लाइंट और सर्वर के बीच. गो में, गोरिल्ला सहित कई फ्रेमवर्क वेबसॉकेट हैंडलिंग को सरल बनाते हैं। हालाँकि, विशिष्ट ग्राहकों को संदेश भेजने का तरीका समझना चुनौतीपूर्ण हो सकता है।

क्लाइंट और सर्वर सेटअप

गोरिल्ला में, सर्वर क्लाइंट कनेक्शन प्रबंधित करने के लिए एक हब स्थापित करता है। हब में संदेशों के प्रसारण के लिए ग्राहकों और चैनलों का एक मानचित्र शामिल है। प्रत्येक क्लाइंट के पास एक वेबसॉकेट कनेक्शन और एक सेंड चैनल होता है। . आमतौर पर, यह क्लाइंट संरचना में एक अद्वितीय आईडी फ़ील्ड बनाकर किया जाता है।

एक विशिष्ट संदेश भेजना

किसी विशिष्ट क्लाइंट को एक संदेश भेजने के लिए, आप या तो कर सकते हैं हब को संशोधित करें या सीधे क्लाइंट के वेबसॉकेट कनेक्शन पर लिखें। हब को संशोधित करने के लिए एक संदेश प्रकार बनाने की आवश्यकता होती है जिसमें लक्ष्य क्लाइंट आईडी और डेटा शामिल हो। फिर आप प्रसारण चैनल को एक संदेश चैनल से बदल देंगे और हब के लूप को तदनुसार संशोधित करेंगे:

type message struct { आईडी आईडी प्रकार डेटा []बाइट } फंक (एच *हब) रन() { के लिए { चुनना { केस क्लाइंट :=

किसी विशिष्ट ग्राहक को संदेश भेजने में शामिल होगा:

type message struct {
    ID idType
    data []byte
}

func (h *Hub) run() {
    for {
        select {
        case client := वैकल्पिक रूप से, आप NextWriter या WriteMessage का उपयोग करके सीधे क्लाइंट के वेबसॉकेट कनेक्शन पर लिख सकते हैं। इस दृष्टिकोण के लिए प्रत्येक ग्राहक के साथ एक कनेक्शन बनाए रखने और कनेक्शन के लिए एकल-थ्रेडेड लेखन सुनिश्चित करने की आवश्यकता होती है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3