Kotlin पर WebSocket: आरंभ से अंत तक real-time एप्लिकेशन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin पर WebSocket: शून्य से real-time एप्लिकेशन बनाना

\n\n

आधुनिक वेब एप्लिकेशनों को तेजी से क्लाइंट और सर्वर के बीच डेटा के तत्काल स्थानांतरण की आवश्यकता होती है। पारंपरिक HTTP, जो "अनुरोध-प्रतिक्रिया" सिद्धांत पर काम करता है, उन कार्यों के लिए उपयुक्त नहीं है जहाँ निरंतर द्विदिश संचार की आवश्यकता होती है - चैट, ऑनलाइन गेम, शेयर बाजार के कोटेशन या रियल-टाइम सूचनाएं। यहीं पर WebSocket प्रोटोकॉल मदद करता है। इस लेख में, हम देखेंगे कि बुनियादी सिद्धांत से लेकर व्यावहारिक उदाहरणों तक, Kotlin पर WebSocket का उपयोग करके real-time एप्लिकेशन कैसे बनाएं।

\n\n

Kotlin, अपनी संक्षिप्तता, सुरक्षा और Java पारिस्थितिकी तंत्र के साथ पूर्ण संगतता के कारण, सर्वर-साइड विकास के लिए एक उत्कृष्ट विकल्प है। मुख्य फ्रेमवर्क के रूप में हम Ktor का उपयोग करेंगे - Kotlin के लिए एक आधुनिक एसिंक्रोनस फ्रेमवर्क जिसमें WebSocket के लिए अंतर्निहित समर्थन है।

\n\n

WebSocket क्या है और इसकी आवश्यकता क्यों है?

\n\n

WebSocket एक प्रोटोकॉल है जो एक स्थायी TCP कनेक्शन के माध्यम से क्लाइंट और सर्वर के बीच पूर्ण-द्वैध (द्विदिश) संचार प्रदान करता है। HTTP के विपरीत, जहाँ अनुरोध का आरंभकर्ता हमेशा क्लाइंट होता है, WebSocket सर्वर को किसी भी समय स्वतंत्र रूप से क्लाइंट को डेटा भेजने की अनुमति देता है।

\n\n

WebSocket के मुख्य लाभ:

\n
    \n
  • कम विलंबता: प्रत्येक संदेश के लिए नया कनेक्शन स्थापित करने का कोई अतिरिक्त खर्च नहीं।
  • \n
  • दक्षता: न्यूनतम सेवा ट्रैफ़िक (कनेक्शन स्थापित होने के बाद प्रति संदेश केवल 2 बाइट्स)।
  • \n
  • स्थायी कनेक्शन: सर्वर क्लाइंट द्वारा पोलिंग के बिना रियल-टाइम में डेटा भेज सकता है।
  • \n
\n\n

WebSocket इसके लिए आदर्श है:

\n
    \n
  • ऑनलाइन चैट और मैसेजिंग ऐप
  • \n
  • सहयोगात्मक दस्तावेज़ संपादन
  • \n
  • शेयर बाजार और वित्तीय कोटेशन
  • \n
  • मल्टीप्लेयर गेम
  • \n
  • Push सूचनाएं और निगरानी
  • \n
\n\n

WebSocket के लिए Ktor प्रोजेक्ट सेटअप

\n\n

कोड लिखने से पहले, प्रोजेक्ट को सेट करना आवश्यक है। ऐसा करने का सबसे आसान तरीका Ktor प्लगइन के साथ IntelliJ IDEA के माध्यम से, या मैन्युअल रूप से Gradle के माध्यम से है।

\n\n

चरण 1: प्रोजेक्ट बनाना

\n

Kotlin (JVM) के साथ एक नया Gradle प्रोजेक्ट बनाएं। build.gradle.kts फ़ाइल में निम्नलिखित निर्भरताएँ जोड़ें:

\n\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    id("io.ktor.plugin") version "2.3.7"\n}\n\napplication {\n    mainClass.set("ApplicationKt")\n}\n\ndependencies {\n    implementation("io.ktor:ktor-server-core:2.3.7")\n    implementation("io.ktor:ktor-server-netty:2.3.7")\n    implementation("io.ktor:ktor-server-websockets:2.3.7")\n    implementation("ch.qos.logback:logback-classic:1.4.14")\n}
\n\n

चरण 2: सर्वर की मूल संरचना

\n

एक फ़ाइल Application.kt बनाएं और एक न्यूनतम WebSocket सर्वर लिखें:

\n\n
import io.ktor.server.engine.*\nimport io.ktor.server.netty.*\nimport io.ktor.server.websocket.*\nimport io.ktor.websocket.*\nimport kotlinx.coroutines.delay\n\nfun main() {\n    embeddedServer(Netty, port = 8080) {\n        install(WebSockets)\n        \n        webSocket("/chat") {\n            send("चैट में आपका स्वागत है!")\n            \n            for (frame in incoming) {\n                if (frame is Frame.Text) {\n                    val text = frame.readText()\n                    send("आपने लिखा: $text")\n                    println("प्राप्त: $text")\n                }\n            }\n        }\n    }.start(wait = true)\n}
\n\n

यह कोड पोर्ट 8080 पर एक सर्वर शुरू करता है, जो पते /chat पर WebSocket कनेक्शन स्वीकार करता है। कनेक्ट होने पर, क्लाइंट को एक स्वागत संदेश मिलता है, और फिर सर्वर प्रत्येक टेक्स्ट संदेश का इको के रूप में जवाब देता है।

\n\n

कमरों के साथ एक उन्नत चैट बनाना

\n\n

अब हम एक अधिक जटिल उदाहरण की ओर बढ़ते हैं - मल्टी

ब्लॉग

पुस्तक अनुशंसाएँ