Node.js में WebSocket: रीयल-टाइम के लिए ws लाइब्रेरी

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

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

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

लाइब्रेरी ws: Node.js के लिए WebSocket



लाइब्रेरी ws Node.js के लिए WebSocket प्रोटोकॉल का एक सरल, तेज़ और पूरी तरह से परीक्षित कार्यान्वयन है। यह सर्वर-साइड JavaScript पर रीयल-टाइम एप्लिकेशन (चैट, ऑनलाइन गेम, सूचनाएं, सहयोगात्मक संपादन) बनाने के लिए डी-फैक्टो मानक है। बिल्ट-इन http मॉड्यूल के विपरीत, ws लगातार HTTP अनुरोधों के बिना क्लाइंट और सर्वर के बीच पूर्ण द्वि-दिशात्मक संचार प्रदान करता है।



मुख्य विशेषताएं

  • RFC 6455 प्रोटोकॉल का पूर्ण समर्थन — सभी आधुनिक ब्राउज़रों के साथ काम करता है।
  • उच्च प्रदर्शन — न्यूनतम मेमोरी खपत और कम विलंबता।
  • सरल API — कोड की कुछ पंक्तियों में सर्वर और क्लाइंट बनाना।
  • एक्सटेंशन के लिए समर्थन — डेटा संपीड़न (permessage-deflate)।
  • HTTP सर्वर के साथ एकीकरण — Express या अन्य फ्रेमवर्क के साथ पोर्ट साझा किया जा सकता है।
  • स्वचालित पुनः कनेक्शन — क्लाइंट के लिए बिल्ट-इन तंत्र।


इंस्टॉलेशन

npm के माध्यम से इंस्टॉलेशन:

npm install ws

इंस्टॉलेशन के बाद लाइब्रेरी उपयोग के लिए तैयार है।



WebSocket सर्वर बनाना

आइए एक सरल सर्वर बनाएं जो कनेक्शन स्वीकार करता है और एक स्वागत संदेश भेजता है:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) { console.log('नया क्लाइंट जुड़ा');

// क्लाइंट को संदेश भेजें ws.send('WebSocket सर्वर में आपका स्वागत है!');

// इनकमिंग संदेशों को संभालें ws.on('message', function incoming(message) { console.log('प्राप्त: %s', message); // वापस भेजें (इको) ws.send('इको: ' + message); });

// कनेक्शन बंद होने को संभालें ws.on('close', function() { console.log('क्लाइंट डिस्कनेक्ट हुआ'); });});

console.log('WebSocket सर्वर ws://localhost:8080 पर शुरू हुआ');


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

क्लाइंट सर्वर से जुड़ता है, एक संदेश भेजता है और उत्तर प्राप्त करता है:

const WebSocket = require('ws');

const ws = new WebSocket('ws://localhost:8080');

ws.on('open', function open() { console.log('कनेक्शन स्थापित'); ws.send('नमस्ते, सर्वर!');});

ws.on('message', function incoming(data) { console.log('सर्वर से उत्तर: %s', data); ws.close();});

ws.on('close', function() { console.log('कनेक्शन बंद');});

ws.on('error', function error(err) { console.error('त्रुटि:', err.message);});


JSON और एकाधिक क्लाइंट के साथ काम करना

एक वास्तविक उदाहरण — एक चैट सर्वर जो सभी जुड़े क्लाइंट को संदेश प्रसारित (broadcast) करता है:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws, req) { console.log('क्लाइंट जुड़ा। कुल क्लाइंट:', wss.clients.size);

ws.on('message', function incoming(message) { // JSON पार्स करें let data; try { data = JSON.parse(message); } catch (e) { ws.send(JSON.stringify({ error: 'अमान्य JSON' })); return; }

// भेजने वाले को छोड़कर सभी को प्रसारित करें wss.clients.forEach(function each(client) { if (client !== ws && client.readyState === WebSocket.OPEN) { client.send(JSON.stringify({ username: data.username, text: data.text, timestamp: Date.now() })); } }); });

ws.send(JSON.stringify({ system: 'चैट में आपका स्वागत है!' }));});

क्लाइंट JSON भेज सकता है:

ws.send(JSON.stringify({ username: 'अलीसा', text: 'सभी को नमस्ते!' }));


HTTP सर्वर के साथ एकीकरण

अनुशंसाएँ