WebSockets Swift डेवलपर्स के लिए क्यों ज़रूरी हैं?
\n\nसोचिए: आप एक मैसेंजर खोलते हैं, और संदेश तुरंत आ जाते हैं। कोई बार-बार पेज रिफ्रेश नहीं, कोई "पुल टू रिफ्रेश" नहीं। यह Real-Time का जादू है, और Swift में इसे WebSockets से हासिल किया जाता है। अगर आप अब भी सिर्फ HTTP रिक्वेस्ट का उपयोग कर रहे हैं, तो आप कई मौकों से चूक रहे हैं: ऑनलाइन चैट, शेयर बाजार के भाव, लाइव नोटिफिकेशन, मल्टीप्लेयर गेम्स।
\n\nइस लेख में हम सीखेंगे कि अपने Swift ऐप में WebSockets कैसे जोड़ें। कोई बेकार की बात नहीं—सिर्फ कोड जिसे कॉपी करके चलाया जा सकता है। अंत तक आप एक घंटे से भी कम समय में अपना पहला Real-Time चैट ऐप बना पाएंगे। चलिए शुरू करते हैं!
\n\nWebSockets क्या हैं और ये REST API से बेहतर क्यों हैं?
\n\nWebSockets एक दो-तरफा संचार प्रोटोकॉल है जो क्लाइंट और सर्वर के बीच होता है। REST के विपरीत, जहां क्लाइंट बार-बार सर्वर से सवाल पूछता है, WebSocket एक स्थायी कनेक्शन स्थापित करता है। सर्वर खुद डेटा भेज सकता है जब वह उपलब्ध हो। यह उसी तरह है जैसे किसी दोस्त को बार-बार फोन करने के बजाय दरवाजा खोलकर अंदर बुलाना।
\n\nSwift डेवलपर के लिए मुख्य लाभ है—डेटा और संसाधनों की बचत। हर मिनट दर्जनों HTTP रिक्वेस्ट के बजाय सिर्फ एक कनेक्शन। ट्रेडिंग ऐप, ऑनलाइन गेम्स, सिस्टम मॉनिटरिंग के लिए यह आदर्श है।
\n\niOS में WebSockets का उपयोग कब करें?
\n- \n
- ऑनलाइन चैट—संदेश तुरंत पहुंचने चाहिए। \n
- शेयर बाजार के भाव—हर सेकंड कीमत बदलती है। \n
- मल्टीप्लेयर गेम्स—खिलाड़ियों की गतिविधियों को सिंक करना। \n
- Real-Time नोटिफिकेशन—नया लाइक, ऑर्डर, संदेश। \n
- IoT ऐप—सेंसर से लगातार डेटा आना। \n
लेकिन हर जगह WebSockets का उपयोग न करें। अगर आपको सिर्फ प्रोडक्ट की लिस्ट लोड करनी है, तो सामान्य HTTP GET ही बेहतर है। WebSocket तब उपयोगी है जब डेटा हर 10 सेकंड से अधिक बार अपडेट होता है।
\n\nSwift में WebSocket सेटअप: शुरू से पहले कनेक्शन तक
\n\nSwift में WebSockets के लिए बिल्ट-इन सपोर्ट है—URLSessionWebSocketTask क्लास। किसी थर्ड-पार्टी लाइब्रेरी की ज़रूरत नहीं। आइए एक सरल क्लाइंट बनाएं।
चरण 1. WebSocket कनेक्शन बनाएं
\n\nimport Foundation\n\nclass WebSocketManager: NSObject {\n private var webSocketTask: URLSessionWebSocketTask?\n private let session: URLSession\n \n override init() {\n self.session = URLSession(configuration: .default, delegate: nil, delegateQueue: OperationQueue())\n super.init()\n }\n \n func connect(to url: URL) {\n webSocketTask = session.webSocketTask(with: url)\n webSocketTask?.resume()\n print("WebSocket कनेक्शन स्थापित हो गया")\n receiveMessage()\n }\n \n func disconnect() {\n webSocketTask?.cancel(with: .normalClosure, reason: nil)\n print("कनेक्शन बंद हो गया")\n }\n}\n\n\nयह एक बेसिक रैपर है। resume() मेथड कनेक्शन शुरू करता है—इसके बिना कुछ नहीं होगा। इसे मंत्र की तरह याद रखें: हमेशा resume() कॉल करें।
चरण 2. संदेश भेजें और प्राप्त करें
\n\nextension WebSocketManager {\n func sendMessage(_ text: String) {\n let message = URLSessionWebSocketTask.Message.string(text)\n webSocketTask?.send(message) { error in\n if let error = error {\n print("भेजने में त्रुटि: \\(error.localizedDescription)")\n }\n }\n }\n \n private func receiveMessage() {\n webSocketTask?.receive { [weak self] result in\n switch result {\n case .success(let message):\n switch message {\n case .string(let text):\n print("संदेश प्राप्त हुआ: \\(text)")\n