जावास्क्रिप्ट में नेटवर्क प्रोग्रामिंग: सॉकेट से WebSocket तक

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

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

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

नेटवर्क प्रोग्रामिंग में जावास्क्रिप्ट क्यों?

\n

एक समय था जब जावास्क्रिप्ट केवल बटनों को एनिमेट करने और फॉर्म को सत्यापित करने की भाषा थी। आज यह नेटवर्क एप्लिकेशन बनाने का सबसे शक्तिशाली उपकरण है। जावास्क्रिप्ट में नेटवर्क प्रोग्रामिंग रियल-टाइम की दुनिया के द्वार खोलती है: चैट, ऑनलाइन गेम, डेटा स्ट्रीमिंग, मॉनिटरिंग सिस्टम और यहां तक कि आपके अपने वेब सर्वर।

\n

इस लेख में हम दस्तावेज़ीकरण को उबाऊ तरीके से नहीं दोहराएंगे। हम एक सरल HTTP अनुरोध से लेकर पूर्ण WebSocket कनेक्शन तक का सफर तय करेंगे। आप देखेंगे कि कैसे Node.js ब्राउज़र भाषा को एक शक्तिशाली नेटवर्क इंजन में बदल देता है। तैयार हैं? चलिए शुरू करते हैं!

\n\n

मूल बातें: HTTP और Node.js मॉड्यूल

\n

कोई भी जावास्क्रिप्ट में नेटवर्क प्रोग्रामिंग प्रोटोकॉल को समझने से शुरू होती है। सबसे लोकप्रिय है HTTP। ब्राउज़र में आप fetch() या XMLHttpRequest करते हैं, लेकिन सर्वर साइड के लिए अलग दृष्टिकोण की आवश्यकता होती है।

\n\n

एक सरल HTTP सर्वर बनाना

\n

Node.js में बिल्ट-इन http मॉड्यूल है। यहाँ एक न्यूनतम उदाहरण है जो किसी भी अनुरोध पर "नमस्ते, दुनिया!" का उत्तर देता है:

\n
const http = require('http');\n\nconst server = http.createServer((req, res) => {\n  res.statusCode = 200;\n  res.setHeader('Content-Type', 'text/plain');\n  res.end('नमस्ते, दुनिया! जावास्क्रिप्ट में नेटवर्क प्रोग्रामिंग काम कर रही है!\\n');\n});\n\nserver.listen(3000, '127.0.0.1', () => {\n  console.log('सर्वर http://127.0.0.1:3000/ पर चालू है');\n});\n
\n

इस कोड को node server.js के माध्यम से चलाएं और ब्राउज़र खोलें। आप हमारा संदेश देखेंगे। सरल है, है ना? लेकिन यह तो केवल शुरुआत है। असली जादू तब शुरू होता है जब हम सॉकेट के साथ काम करते हैं।

\n\n

जावास्क्रिप्ट में TCP सॉकेट के साथ काम करना

\n

HTTP एक एप्लिकेशन-लेयर प्रोटोकॉल है जो TCP के ऊपर बना है। यदि आपको डेटा ट्रांसफर पर पूर्ण नियंत्रण चाहिए, तो जावास्क्रिप्ट सॉकेट का उपयोग करें। Node.js में इसके लिए net मॉड्यूल जिम्मेदार है।

\n\n

TCP सर्वर: डेटा प्राप्त करना

\n

कल्पना करें कि आप एक सरल इको सर्वर लिख रहे हैं। क्लाइंट कनेक्ट होता है, संदेश भेजता है, सर्वर उसे वापस भेजता है। यह इस प्रकार दिखता है:

\n
const net = require('net');\n\nconst server = net.createServer((socket) => {\n  console.log('क्लाइंट कनेक्ट हुआ');\n\n  socket.on('data', (data) => {\n    console.log('प्राप्त हुआ:', data.toString());\n    socket.write('इको: ' + data.toString());\n  });\n\n  socket.on('end', () => {\n    console.log('क्लाइंट डिस्कनेक्ट हुआ');\n  });\n});\n\nserver.listen(8080, () => {\n  console.log('TCP सर्वर पोर्ट 8080 पर सुन रहा है');\n});\n
\n

अब इस सर्वर के लिए एक क्लाइंट लिखते हैं। जावास्क्रिप्ट में क्लाइंट-सर्वर दो-तरफा संचार है:

\n
const net = require('net');\n\nconst client = net.createConnection({ port: 8080 }, () => {\n  console.log('सर्वर से कनेक्ट हुए');\n  client.write('नमस्ते, सर्वर!');\n});\n\nclient.on('data', (data) => {\n  console.log('सर्वर का उत्तर:', data.toString());\n  client.end();\n});\n\nclient.on('end', () => {\n  console.log('सर्वर से डिस्कनेक्ट हुए');\n});\n
\n

पहले सर्वर चलाएं, फिर क्लाइंट। आप देखेंगे कि डेटा आगे-पीछे कैसे यात्रा करता है। यह सभी जावास्क्रिप्ट नेटवर्क प्रोटोकॉल का आधार है।

\n\n

WebSocket: बिना देरी के रियल-टाइम

\n

HTTP और TCP अच्छे हैं, लेकिन उनमें एक समस्या है: नया डेटा प्राप्त करने के लिए क्लाइंट को लगातार अनुरोध (polling) करना पड़ता है। यह अक्षम है। जावास्क्रिप्ट में WebSocket इस समस्या को हल करता है — कनेक्शन स्थापित होने के बाद सर्वर किसी भी समय डेटा भेज सकता है।

\n\n

Node.js पर WebSocket (ws लाइब्रेरी)

\n

लाइब्रेरी इंस्टॉल करें: npm install ws

\n

सर्वर:

\n
const WebSocket = require('ws');\n\nconst wss = new WebSocket.Server({ port: 8081 });\n\nwss.on('connection', (ws) => {\n  console.log('WebSocket क्लाइंट कनेक्ट हुआ');\n\n  ws.on('message', (message) => {\n    console.log('प्राप्त हुआ:',                

ब्लॉग

पुस्तक अनुशंसाएँ