Node.js के लिए WebSocket लाइब्रेरीज़: ws, Socket.IO, uWS — पूर्ण समीक्षा

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

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

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

Node.js के लिए WebSocket लाइब्रेरीज़: ws, Socket.IO और µWebSockets

\n\n

WebSocket एक प्रोटोकॉल है जो क्लाइंट और सर्वर के बीच स्थायी द्विदिश कनेक्शन प्रदान करता है। Node.js इकोसिस्टम में इस प्रोटोकॉल को लागू करने वाली कई लोकप्रिय लाइब्रेरीज़ मौजूद हैं। इस लेख में हम तीन मुख्य लाइब्रेरीज़ पर विचार करेंगे: ws, Socket.IO और µWebSockets (uWS)। आप सीखेंगे कि उन्हें कैसे स्थापित करें, एक सरल चैट सर्वर कैसे लिखें और अपने कार्य के लिए उपयुक्त उपकरण कैसे चुनें।

\n\n

1. ws लाइब्रेरी — हल्की और उच्च प्रदर्शन वाली

\n\n

ws Node.js के लिए सबसे लोकप्रिय और तेज़ WebSocket लाइब्रेरी है। यह बिना किसी अतिरिक्त ओवरले के शुद्ध WebSocket प्रोटोकॉल को लागू करती है, जो न्यूनतम ओवरहेड और अधिकतम गति प्रदान करती है।

\n\n

स्थापना

\n
npm install ws
\n\n

उदाहरण: इको सर्वर

\n
const WebSocket = require('ws');\n\nconst server = new WebSocket.Server({ port: 8080 });\n\nserver.on('connection', (ws) => {\n  console.log('क्लाइंट कनेक्ट हुआ');\n\n  ws.on('message', (message) => {\n    console.log(`प्राप्त: ${message}`);\n    ws.send(`इको: ${message}`);\n  });\n\n  ws.on('close', () => {\n    console.log('क्लाइंट डिस्कनेक्ट हुआ');\n  });\n});\n\nconsole.log('WebSocket सर्वर ws://localhost:8080 पर शुरू हुआ');
\n\n

क्लाइंट भाग (ब्राउज़र)

\n
const socket = new WebSocket('ws://localhost:8080');\n\nsocket.onopen = () => {\n  console.log('कनेक्शन स्थापित हुआ');\n  socket.send('नमस्ते, सर्वर!');\n};\n\nsocket.onmessage = (event) => {\n  console.log('सर्वर से उत्तर:', event.data);\n};\n\nsocket.onerror = (error) => {\n  console.error('WebSocket त्रुटि:', error);\n};
\n\n

ws की विशेषताएँ:

\n
    \n
  • प्रदर्शन: थ्रूपुट परीक्षणों में Socket.IO से 2-3 गुना तेज़।
  • \n
  • न्यूनतमता: कोई अंतर्निहित पुनः कनेक्शन तंत्र, कमरे या फ़ॉलबैक ट्रांसपोर्ट नहीं।
  • \n
  • समर्थन: RFC 6455 के साथ पूर्ण संगतता।
  • \n
  • उपयोग: रीयल-टाइम अनुप्रयोगों के लिए आदर्श जहाँ गति महत्वपूर्ण है (स्टॉक डेटा, गेम, उच्च लोड वाले चैट)।
  • \n
\n\n

2. Socket.IO — प्रोडक्शन के लिए सुविधा और विश्वसनीयता

\n\n

Socket.IO केवल एक WebSocket लाइब्रेरी नहीं है, बल्कि रीयल-टाइम अनुप्रयोगों के लिए एक संपूर्ण फ्रेमवर्क है। यह WebSocket के ऊपर जोड़ता है: स्वचालित पुनः कनेक्शन, कमरे, नाम स्थान, लॉन्ग-पोलिंग पर फ़ॉलबैक (यदि WebSocket समर्थित नहीं है) और एक सुविधाजनक API।

\n\n

स्थापना

\n
npm install socket.io
\n\n

उदाहरण: सरल चैट सर्वर

\n
const http = require('http');\nconst { Server } = require('socket.io');\n\nconst server = http.createServer();\nconst io = new Server(server, {\n  cors: { origin: '*' }\n});\n\nio.on('connection', (socket) => {\n  console.log(`उपयोगकर्ता कनेक्ट हुआ: ${socket.id}`);\n\n  socket.on('chat message', (msg) => {\n    console.log(`संदेश: ${msg}`);\n    io.emit('chat message', msg); // सभी को भेजें\n  });\n\n  socket.on('disconnect', () => {\n    console.log(`उपयोगकर्ता डिस्कनेक्ट हुआ: ${socket.id}`);\n  });\n});\n\nserver.listen(3000, () => {\n  console.log('Socket.IO सर्वर http://localhost:3000 पर');\n});
\n\n

क्लाइंट भाग (ब्राउज़र)

\n
<script src="/socket.io/socket.io.js"></script>\n<script>\n  const socket = io('http://localhost:3000');\n\n  socket.on('connect', () => {\n    console.log('सर्वर से कनेक्ट हुआ');\n    socket.emit('chat message', 'सभी को नमस्ते!');\n  });\n\n  socket.on('chat message', (msg) => {\n    const item = document.createElement('li');\n    item.textContent = msg;\n    document.getElementById('messages').appendChild(item);\n  });\n</script>
\n\n

Socket.IO की विशेषताएँ:

\n

अनुशंसाएँ