WebSocket लाइब्रेरीज़ TypeScript: पूर्ण अवलोकन और व्यावहारिक उदाहरण
आधुनिक वेब डेवलपमेंट में, WebSocket तकनीक रियल-टाइम (real-time) एप्लिकेशन बनाने का मानक बन गई है। क्लाइंट और सर्वर के बीच निरंतर द्वि-दिशात्मक कनेक्शन के कारण, WebSocket चैट, ऑनलाइन गेम, स्टॉक ट्रेडर्स, मॉनिटरिंग सिस्टम और किसी भी अन्य प्रोजेक्ट के लिए आदर्श है जहाँ तत्काल डेटा ट्रांसफर की आवश्यकता होती है। इस लेख में, हम TypeScript के लिए तीन मुख्य WebSocket लाइब्रेरीज़: ws, Socket.IO और uWebSockets.js पर विस्तार से चर्चा करेंगे, जिसमें उनकी स्थापना, कॉन्फ़िगरेशन और कोड उदाहरण शामिल हैं।
1. ws लाइब्रेरी — Node.js के लिए हल्का और तेज़ WebSocket
ws लाइब्रेरी Node.js के लिए WebSocket प्रोटोकॉल का सबसे लोकप्रिय और न्यूनतम कार्यान्वयन है। यह कोई अतिरिक्त एब्स्ट्रैक्शन नहीं जोड़ता, सीधे नेटिव प्रोटोकॉल के साथ काम करता है और अधिकतम प्रदर्शन सुनिश्चित करता है। TypeScript को अलग से इंस्टॉल किए जा सकने वाले टाइप्स के माध्यम से समर्थित किया जाता है।
स्थापना
npm install wsnpm install -D @types/wsTypeScript पर एक सरल सर्वर का उदाहरण
import { WebSocketServer, WebSocket } from 'ws';
const wss = new WebSocketServer({ port: 8080 });
wss.on('connection', (ws: WebSocket) => { console.log('क्लाइंट कनेक्ट हुआ');
ws.on('message', (message: Buffer) => { console.log('संदेश प्राप्त हुआ:', message.toString()); // सभी कनेक्टेड क्लाइंट्स को उत्तर भेजें wss.clients.forEach((client) => { if (client.readyState === WebSocket.OPEN) { client.send(`इको: ${message.toString()}`); } }); });
ws.on('close', () => { console.log('क्लाइंट डिस्कनेक्ट हुआ'); });});
console.log('WebSocket सर्वर ws://localhost:8080 पर शुरू हुआ');क्लाइंट कोड (ब्राउज़र)
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = () => { console.log('कनेक्शन स्थापित हुआ'); ws.send('नमस्ते, सर्वर!');};
ws.onmessage = (event: MessageEvent) => { console.log('सर्वर से उत्तर:', event.data);};लाभ: न्यूनतम ओवरहेड, प्रोटोकॉल पर पूर्ण नियंत्रण, उच्च-लोड सिस्टम के लिए उपयुक्त।
नुकसान: रूम, ऑटो-रीकनेक्ट या HTTP-ट्रांसपोर्ट पर फ़ॉलबैक का कोई अंतर्निहित समर्थन नहीं।
2. Socket.IO — समृद्ध API के साथ सार्वभौमिक समाधान
Socket.IO केवल WebSocket नहीं है, बल्कि रियल-टाइम संचार के लिए एक पूर्ण फ्रेमवर्क है। यह मुख्य ट्रांसपोर्ट के रूप में WebSocket का उपयोग करता है, लेकिन यदि WebSocket उपलब्ध नहीं है (उदाहरण के लिए, प्रॉक्सी या पुराने ब्राउज़रों के पीछे) तो स्वचालित रूप से HTTP long-polling पर स्विच हो जाता है। Socket.IO तैयार तंत्र प्रदान करता है: रूम, नेमस्पेस (namespaces), ऑटो-रीकनेक्ट, संदेश वितरण पुष्टिकरण (acknowledgements) और बहुत कुछ।
स्थापना
npm install socket.io socket.io-clientnpm install -D @types/socket.ioरूम के साथ TypeScript सर्वर का उदाहरण
import { Server, Socket } from 'socket.io';import http from 'http';
const server = http.createServer();const io = new Server(server, { cors: { origin: '*' }});
io.on('connection', (socket: Socket) => { console.log('उपयोगकर्ता कनेक्ट हुआ:', socket.id);
// रूम में शामिल होना socket.on('join_room', (roomName: string) => { socket.join(roomName); socket.to(roomName).emit('user_joined', socket.id); });
// रूम में संदेश भेजना socket.on('room_message', (data: { room: string; message: string }) => { io.to(data.room).emit('new_message', { user: socket.id, text: data.message }); });
socket.on('disconnect', () => { console.log('उपयोगकर्ता डिस्कनेक्ट हुआ:', socket.id); });});
server.listen(3000, () => { console.log('Socket.IO सर्वर पोर्ट पर शुरू हुआ');