WebSocketها ارتباط دوطرفه کامل بین سرور و کلاینت را امکانپذیر میکنند و آنها را برای ساخت برنامههای real-time به یک انتخاب ایدهآل تبدیل مینماید. در این مقاله قصد داریم تا فرآیند گام به گام برای راهاندازی یک سرور WebSocket با استفاده از Node.js و تایپ اسکریپت را باهم بررسی کنیم.
قبل از اینکه به جزئیات بپردازیم، در این بخش بررسی میکنیم که WebSocket چیست و برای چه منظوری مورد استفاده قرار میگیرد. برخلاف درخواستهای سنتی HTTP که بدون state هستند، WebSocketها ارتباط دو طرفه بین کلاینتها و سرورها را از طریق یک اتصال باز واحد امکانپذیر میسازند. این موضوع امکان بهروزرسانیهای real-time و push notificationها را بدون نیاز به نظرسنجی مداوم از سرور فراهم میکند.
در ادامه مقاله مراحل گام به گام راهاندازی یک سرور WebSocket را بررسی خواهیم کرد.
ابتدا، یک دایرکتوری جدید برای پروژه خود ایجاد کرده و یک پروژه Node.js جدید را مقداردهی میکنیم:
mkdir websocket-ts cd websocket-ts npm init -y
اکنون تایپ اسکریپت را نصب و پیکربندی میکنیم:
npm install typescript --save-dev npx tsc --init
با اجرای دستور بالا یک فایل tsconfig.json
در پروژه ساخته میشود. ما میتوانیم گزینههای کامپایلر را بر اساس نیاز خود تنظیم نماییم، اما در این مقاله از مقادیر پیشفرض استفاده میکنیم.
ما از کتابخانه ws
برای مدیریت اتصالات WebSocket استفاده خواهیم کرد. برای نصب و تعاریف تایپ آن، دستور زیر را اجرا میکنیم:
npm install ws npm install @types/ws --save-dev
یک فایل جدید به نام server.ts
میسازیم و کد زیر را در آن قرار میدهیم:
import WebSocket, { Server } from 'ws'; import http from 'http'; const PORT = 8080; // Create an HTTP server const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('WebSocket server running'); }); // Create a WebSocket server by passing the HTTP server instance to ws const wss = new Server({ server }); console.log(`WebSocket server started on port ${PORT}`);
کد را در فایل server.ts
extend میکنیم تا اتصالات، پیامها و قطع ارتباط کلاینت را مدیریت کند.
wss.on('connection', (ws: WebSocket) => { console.log('Client connected'); // Handle messages from clients ws.on('message', (message: string) => { console.log(`Received message: ${message}`); }); // Handle client disconnect ws.on('close', () => { console.log('Client disconnected'); }); });
پس از این که گامهای فوق را به درستی انجام دادیم، فقط باید سرور HTTP خود را راهاندازی نماییم. برای این کار، کد زیر را در انتهای فایل server.ts
اضافه میکنیم:
server.listen(PORT, () => { console.log(`HTTP server started on port ${PORT}`); });
برای اجرای سرور WebSocket خود، کد تایپ اسکریپت را کامپایل کرده و سپس سرور را راهاندازی میکنیم:
npx tsc server.ts node server.js
اکنون سرور WebSocket ما باید در آدرس http://localhost:8080/
اجرا شود. کلاینتها میتوانند به آن متصل شوند و شروع به ارسال و دریافت پیامهای real-time نمایند.
۵۰ درصد تخفیف ویژه زمستان فرانت کست تا ۱۴ دی
کد تخفیف: wnt