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

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

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

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

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

\n\n

जब हम TypeScript में नेटवर्क प्रोग्रामिंग की बात करते हैं, तो अक्सर हम जटिल वितरित सिस्टम, रियल-टाइम चैट या गेम सर्वर की कल्पना करते हैं। और यह कोई संयोग नहीं है: TypeScript अपनी सख्त टाइपिंग और स्टैटिक एनालिसिस क्षमताओं के साथ नेटवर्क एप्लीकेशन डेवलपमेंट को न केवल सुरक्षित, बल्कि वास्तव में सुविधाजनक बनाता है।

\n\n

इस लेख में, हम सीखेंगे कि कैसे Node.js के बिल्ट-इन मॉड्यूल net और dgram के साथ-साथ WebSocket लाइब्रेरीज़ का उपयोग करके TypeScript में क्लाइंट-सर्वर एप्लीकेशन बनाए जाते हैं। आपको तैयार कोड उदाहरण मिलेंगे जिन्हें आप तुरंत अपने प्रोजेक्ट्स में लागू कर सकते हैं।

\n\n

नेटवर्क प्रोग्रामिंग के लिए TypeScript क्यों?

\n\n

कई डेवलपर्स बैकएंड के लिए JavaScript का उपयोग करने के आदी हैं, लेकिन TypeScript नेटवर्क प्रोग्रामिंग कई लाभ प्रदान करता है:

\n\n
    \n
  • डेटा टाइपिंग — आप पैकेट और संदेशों की संरचना पहले से परिभाषित कर सकते हैं
  • \n
  • ऑटो-कम्प्लीशन — IDE सॉकेट के मेथड और उनके पैरामीटर सुझाता है
  • \n
  • कम त्रुटियाँ — कंपाइलर रन करने से पहले ही टाइप मिसमैच पकड़ लेता है
  • \n
\n\n

आइए एक वास्तविक उदाहरण देखें। मान लीजिए हम TCP सर्वर लिख रहे हैं। JavaScript में आप ऐसे लिखेंगे:

\n\n
const server = require('net').createServer(socket => {\n  socket.on('data', data => {\n    // data — यह Buffer है, इसे याद रखना होगा\n  });\n});
\n\n

जबकि TypeScript में हमें स्पष्ट टाइप मिलते हैं:

\n\n
import * as net from 'net';\n\nconst server: net.Server = net.createServer((socket: net.Socket) => {\n  socket.on('data', (data: Buffer) => {\n    // Buffer टाइप ज्ञात है, आत्मविश्वास से काम करें\n  });\n});
\n\n

यह छोटी सी बात लगती है, लेकिन बड़े प्रोजेक्ट्स में यह अंतर डिबगिंग के घंटे बचाता है।

\n\n

मूल बातें: TypeScript में TCP सर्वर और क्लाइंट

\n\n

शुरुआत क्लासिक TCP से करते हैं। एक सरल इको सर्वर बनाते हैं जो क्लाइंट से जो प्राप्त करता है, वही वापस भेजता है।

\n\n

TCP सर्वर

\n\n
import * as net from 'net';\n\nconst PORT: number = 3000;\nconst HOST: string = '127.0.0.1';\n\nconst server: net.Server = net.createServer((socket: net.Socket) => {\n  console.log(`क्लाइंट कनेक्ट हुआ: ${socket.remoteAddress}:${socket.remotePort}`);\n\n  socket.on('data', (data: Buffer) => {\n    const message: string = data.toString().trim();\n    console.log(`प्राप्त हुआ: ${message}`);\n    socket.write(`इको: ${message}\\n`);\n  });\n\n  socket.on('end', () => {\n    console.log('क्लाइंट डिस्कनेक्ट हुआ');\n  });\n\n  socket.on('error', (err: Error) => {\n    console.error('सॉकेट त्रुटि:', err.message);\n  });\n});\n\nserver.listen(PORT, HOST, () => {\n  console.log(`TCP सर्वर ${HOST}:${PORT} पर शुरू हुआ`);\n});
\n\n

ध्यान दें: हमने सभी वेरिएबल्स — server, socket, data, err — को टाइप किया है। इससे हमें पता चलता है कि सॉकेट के कौन से मेथड उपलब्ध हैं, और आकस्मिक त्रुटियों से बचा जा सकता है।

\n\n

TCP क्लाइंट

\n\n
import * as net from 'net';\n\nconst client: net.Socket = new net.Socket();\n\nclient.connect(3000, '127.0.0.1', () => {\n  console.log('सर्वर से कनेक्ट हुआ');\n  client.write('नमस्ते, सर्वर!');\n});\n\nclient.on('data', (data: Buffer) => {\n  console.log('सर्वर का जवाब:', data.toString());\n  client.destroy();\n});\n\nclient.on('close', () => {\n  console.log('कनेक्शन बंद हुआ');\n});
\n\n

इस कोड को Node.js और TypeScript वाले किसी भी प्रोजेक्ट में चलाया जा सकता है। बस @types/node इंस्टॉल करें और कंपाइल करें।

\n\n

UDP: जब गति विश्वसनीयता से अधिक महत्वपूर्ण हो

\n\n

अगर आपको बिना कनेक्शन स्थापित किए डेटा ट्रांसफर करना है (जैसे स्ट्रीमिंग या गेम्स के लिए), तो TypeScript UDP सॉकेट का उपयोग करें। dgram मॉड्यूल सब कुछ प्रदान करता है।

\n\n

UDP सर्वर

\n\n
import * as dgram from 'dgram';\n\nconst server: dgram.Socke                

ब्लॉग

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