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

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

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

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

Kotlin पर WebSocket का परिचय: सिद्धांत से real-time अभ्यास तक



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



Kotlin, JVM, JavaScript और Native के लिए एक आधुनिक भाषा होने के नाते, WebSocket के साथ काम करने के लिए उत्कृष्ट उपकरण प्रदान करता है। इस लेख में, हम Ktor लाइब्रेरी — अतुल्यकालिक सर्वर और क्लाइंट बनाने के लिए एक लोकप्रिय फ्रेमवर्क — का उपयोग करके Kotlin पर real-time एप्लिकेशन बनाने का तरीका समझेंगे। आप सीखेंगे कि WebSocket कनेक्शन कैसे सेट करें, संदेश भेजें और प्राप्त करें, त्रुटियों को संभालें और स्केलेबल समाधान बनाएं।



1. WebSocket की मूल बातें: Kotlin और Ktor क्यों?



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



Ktor के साथ Kotlin प्रदान करता है:

  • अतुल्यकालिकता — Kotlin कोरूटीन थ्रेड्स को ब्लॉक किए बिना हजारों समवर्ती कनेक्शनों को संभालने की अनुमति देते हैं।
  • क्रॉस-प्लेटफॉर्म — एक ही कोड JVM, JavaScript और Native पर काम कर सकता है।
  • संक्षिप्तता — न्यूनतम बॉयलरप्लेट, अधिकतम अभिव्यक्ति।
  • सुरक्षा — SSL/TLS, प्रमाणीकरण और CORS के लिए अंतर्निहित समर्थन।


आइए अभ्यास की ओर बढ़ें और Kotlin पर एक सरल WebSocket सर्वर और क्लाइंट बनाएं।



2. Ktor के साथ Kotlin पर WebSocket सर्वर बनाना



2.1. प्रोजेक्ट सेटअप



आरंभ करने के लिए, एक नया Gradle या Maven प्रोजेक्ट बनाएं। build.gradle.kts में Ktor निर्भरताएं जोड़ें:



dependencies {    implementation("io.ktor:ktor-server-core:2.3.0")    implementation("io.ktor:ktor-server-netty:2.3.0")    implementation("io.ktor:ktor-server-websockets:2.3.0")    implementation("ch.qos.logback:logback-classic:1.4.11")}


2.2. सर्वर का कार्यान्वयन



एक WebSocket सर्वर बनाएं जो कनेक्शन स्वीकार करता है, संदेश पढ़ता है और उनका उत्तर देता है। नीचे दिया गया उदाहरण कोरूटीन के साथ Ktor लाइब्रेरी का उपयोग करता है:



import io.ktor.server.engine.*import io.ktor.server.netty.*import io.ktor.server.websocket.*import io.ktor.websocket.*import kotlinx.coroutines.delay

fun main() { embeddedServer(Netty, port = 8080) { install(WebSockets) webSocket("/chat") { send(Frame.Text("चैट में आपका स्वागत है!")) for (frame in incoming) { if (frame is Frame.Text) { val text = frame.readText() println("प्राप्त: $text") send(Frame.Text("इको: $text")) } } } }.start(wait = true)}


यहां हम:

  • WebSockets प्लगइन स्थापित करते हैं।
  • एंडपॉइंट /chat परिभाषित करते हैं।
  • कोरूटीन में इनकमिंग फ्रेम्स को संसाधित करते हैं और इको प्रतिक्रिया भेजते हैं।


2.3. त्रुटि प्रबंधन और कनेक्शन बंद करना



वास्तविक एप्लिकेशनों में कनेक्शन टूटने को सही ढंग से संभालना महत्वपूर्ण है। अपवाद प्रबंधन और सत्र बंद करना जोड़ें:



webSocket("/chat") {    try {        send(Frame.Text("कनेक्शन स्थापित"))        for (frame in incoming) {            when (frame) {                is Frame.Text -> {                    val text = frame.readText()                    if (text.equals("exit", ignoreCase = true)) {                        cl                

ब्लॉग

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