Kotlin WebSocket लाइब्रेरी: रीयल-टाइम के लिए ktor-client-websockets

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

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

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

Kotlin WebSocket लाइब्रेरी: ktor-client-websockets



आधुनिक वेब डेवलपमेंट में, रीयल-टाइम डेटा एक्सचेंज की आवश्यकता बढ़ती जा रही है: ऑनलाइन चैट, नोटिफिकेशन, स्टॉक कोट्स, मल्टीप्लेयर गेम्स। Kotlin के लिए WebSocket प्रोटोकॉल के साथ काम करने वाली सबसे शक्तिशाली और नेटिव लाइब्रेरी में से एक ktor-client-websockets है - जो Ktor इकोसिस्टम (Kotlin HTTP-क्लाइंट) का हिस्सा है।



इस लेख में, हम विस्तार से समझेंगे कि Ktor का उपयोग करके Kotlin में WebSocket को कैसे कनेक्ट और उपयोग करें। आप सीखेंगे कि लाइब्रेरी कैसे इंस्टॉल करें, कनेक्शन स्थापित करें, संदेश भेजें और प्राप्त करें, साथ ही एरर और कनेक्शन बंद करने को कैसे हैंडल करें।



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

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

  • चैट और मैसेंजर;
  • नोटिफिकेशन और इवेंट फ़ीड;
  • गेम और सहयोगी संपादक;
  • वित्तीय टिकर और ट्रेडिंग।


लाइब्रेरी ktor-client-websockets की स्थापना

शुरू करने के लिए, अपने build.gradle.kts (Kotlin/JVM या Kotlin Multiplatform प्रोजेक्ट) में डिपेंडेंसी जोड़ें।



// build.gradle.ktsdependencies {    implementation("io.ktor:ktor-client-core:2.3.7")    implementation("io.ktor:ktor-client-cio:2.3.7") // या कोई अन्य इंजन    implementation("io.ktor:ktor-client-websockets:2.3.7")}


यदि आप Kotlin Multiplatform का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपने प्रत्येक प्लेटफ़ॉर्म के लिए मॉड्यूल जोड़ा है (जैसे, Android के लिए ktor-client-okhttp)।



WebSocket क्लाइंट बनाना

WebSocket के साथ काम करने के लिए मुख्य क्लास WebSockets प्लगइन के साथ HttpClient है। आइए WebSocket सर्वर से कनेक्ट करने का एक सरल उदाहरण देखें।



import io.ktor.client.*import io.ktor.client.plugins.websocket.*import io.ktor.websocket.*

suspend fun main() { val client = HttpClient { install(WebSockets) }

client.webSocket("ws://echo.websocket.org") { // संदेश भेजें send(Frame.Text("नमस्ते, WebSocket!"))

// उत्तर प्राप्त करें for (frame in incoming) { when (frame) { is Frame.Text -> { println("प्राप्त: ${frame.readText()}") } else -> println("अन्य फ्रेम प्रकार: $frame") } } }

client.close()}


इस कोड में हम:

  1. WebSocket समर्थन के साथ HTTP-क्लाइंट बनाते हैं।
  2. टेस्ट सर्वर ws://echo.websocket.org से कनेक्शन स्थापित करते हैं।
  3. एक टेक्स्ट संदेश भेजते हैं।
  4. इनकमिंग फ्रेम पढ़ते हैं और उन्हें कंसोल पर प्रिंट करते हैं।


एरर हैंडलिंग और कनेक्शन बंद करना

वास्तविक एप्लिकेशन में, अपवादों को सही ढंग से हैंडल करना और कनेक्शन बंद करना महत्वपूर्ण है। try-catch और finally का उपयोग करें।



import io.ktor.client.*import io.ktor.client.plugins.websocket.*import io.ktor.websocket.*import kotlinx.coroutines.*

suspend fun main() = coroutineScope { val client = HttpClient { install(WebSockets) }

try { client.webSocket("ws://your-server.com/ws") { // भेजना send(Frame.Text("पिंग"))

// टाइमआउट के साथ प्राप्त करना withTimeout(5000) { for (frame in incoming) { if (frame is Frame.Text) { println("उत्तर: ${frame.readText()}") } } } } } catch (e: Exception) { println("WebSocket त्रुटि: ${e.message}") } finally { cli

अनुशंसाएँ