سیداحمد
خواندن ۳ دقیقه·۲ ماه پیش

وب‌سوکت (WebSocket) چیست؟ Centrifugo چیست؟

وب‌سوکت (WebSocket) یک پروتکل ارتباطی است که به ما امکان می‌دهد که اتصال دوطرفه و مستقیم بین یک کلاینت (مانند مرورگر) و یک سرور برقرار کنیم. در مقابل HTTP که ارتباط آن طرف‌دار و درخواست-پاسخ است، وب‌سوکت اجازه می‌دهد که هر دو طرف (کلاینت و سرور) بدون نیاز به درخواست قبلی، اطلاعات را به هم بفرستند.


ویژگی‌های وب‌سوکت:

  1. دوطرفه : اطلاعات می‌تواند به صورت دوطرفه بین کلاینت و سرور جابجا شود.
  2. پایدار : اتصال بعد از برقراری حفظ می‌شود تا زمانی که یکی از طرف‌ها آن را قطع کند.
  3. ساده و کارآمد : با استفاده از وب‌سوکت، نیازی به استفاده از تکنیک‌هایی مثل Long Polling یا Server-Sent Events نیست.

ساختار درختی مسائل مرتبط با وب‌سوکت

هدف از این ساختار درختی این است که شما به خوبی مسائلی که باید در یادگیری وب سوکت یاد بگیرید را بشناسید.

/WebSocket ├── /Introduction │ ├── WhatIsWebSocket.md │ ├── AdvantagesAndDisadvantages.md │ └── UseCases.md ├── /Implementation │ ├── ClientSide │ │ ├── JavaScriptWebSocketAPI.md │ │ └── ExampleCode.js │ └── ServerSide │ ├── NodeJSWebSocketServer.md │ ├── PythonWebSocketServer.md │ └── ExampleCode.py ├── /BestPractices │ ├── SecurityConsiderations.md │ └── PerformanceOptimization.md └── /UseCases ├── RealTimeChatApplications.md ├── StockMarketUpdates.md ├── OnlineGaming.md ├── IoTCommunication.md └── FileTransfer.md

کاربردهای وب‌سوکت:

  1. چت‌های زنده (Real-Time Chat Applications) : برای ارسال پیام‌ها به صورت فوری بین کاربران.
  2. به‌روزرسانی‌های بازار سهام (Stock Market Updates) : برای ارسال اطلاعات بازار سهام به صورت زنده به کاربران.
  3. بازی‌های آنلاین (Online Gaming) : برای ارتباط بین بازیکنان در بازی‌های چندنفره.
  4. اتصالات IoT (Internet of Things) : برای ارتباط بین دستگاه‌های هوشمند.
  5. انتقال فایل‌ها (File Transfer) : برای انتقال فایل‌ها به صورت مستقیم و سریع.

Centrifugo چیست؟

Centrifugo یک سرویس و سرور وب‌سوکت است که برای ایجاد ارتباطات زنده و دوطرفه طراحی شده است. این ابزار به شما امکان می‌دهد که با استفاده از وب‌سوکت، اپلیکیشن‌های زنده و تعاملی مانند چت‌ها، اعلان‌های فوری و به‌روزرسانی‌های زنده را توسعه دهید.

ویژگی‌های Centrifugo:

  1. پشتیبانی از وب‌سوکت : Centrifugo به صورت پیش‌فرض از وب‌سوکت برای ارتباط استفاده می‌کند.
  2. پشتیبانی از Protocols مختلف : علاوه بر وب‌سوکت، از پروتکلهای دیگری مثل HTTP Streaming و Long Polling نیز پشتیبانی می‌کند.
  3. قابلیت مقیاس‌پذیری : با استفاده از Redis، Centrifugo قادر به مدیریت اتصالات متعدد است.
  4. پشتیبانی از Authentication و Authorization : امکان احراز هویت و اختصاص دسترسی به کاربران وجود دارد.
  5. Open Source : کد منبع Centrifugo در دسترس عموم است.

زبان‌هایی که Centrifugo از آنها پشتیبانی می‌کند:

  • Go (Golang) : Centrifugo خود به زبان Go نوشته شده است.
  • JavaScript/TypeScript : برای کلاینت‌های مرورگر.
  • Python : برای ایجاد کلاینت‌ها و سرورهای جانبی.
  • Ruby : پشتیبانی از این زبان برای ایجاد کلاینت‌ها.

وب‌سایت رسمی Centrifugo:

https://centrifugal.io

نمونه کد ساده برای کلاینت وب‌سوکت با جاوا اسکریپت:

//create : ایجاد اتصال وب‌سوکت const socket = new WebSocket('wss://your-centrifugo-server-address'); // رویداد برقراری اتصال socket.onopen = function () { console.log('Connected to WebSocket server'); // ارسال پیام به سرور socket.send(JSON.stringify({ action: &quotsubscribe&quot, channel: &quotpublic&quot })); }; // رویداد دریافت پیام از سرور socket.onmessage = function (event) { const data = JSON.parse(event.data); console.log('Message from server:', data); }; // رویداد قطع اتصال socket.onclose = function () { console.log('Disconnected from WebSocket server'); };


ارشد نرم‌افزار و توسعه‌دهنده React و Next.js🚀 | طراحی سایت‌های مدرن و کاربرپسند | ارتباط با من zil.ink/seyedahmaddev
شاید از این پست‌ها خوشتان بیاید