بررسی مکانیزم ارتباط برقرار کردن با Client در Asp.Net Core

در این درس از سری آموزش رایگان معماری Asp.Net Core و اپلیکیشن‌های ایجاد شده با آن قصد داریم در رابطه با برقراری ارتباط بین کلاینت و سرور صحبت کنیم. علاوه بر در اختیار گذاشتن Page ها و ارسال Response متناظر با یک Request از طریق Web API، اپلیکیشن های ایجاد شده با Asp.Net Core می‌توانند به صورت مستقیم با کلاینت های متصل ارتباط برقرار کنند. این اتصال می تواند از تکنولوژی های متعددی استفاده کند، اما یکی از محبوب ترین و پراستفاده ترین تکنولوژی ها WebSocket ها هستند. ASP.NET Core SignalR یک کتابخانه است که روند ایجاد کردن یک اتصال real-time بین سرور و کلاینت را به سادگی به برنامه اضافه خواهد کرد. برای یادگیری استفاده کردن از SignalR در اپلیکیشن‌های Asp.Net Core توصیه می‌کنیم از بسته ی آموزش ویدئویی شروع به کار با ASP.NET Core و SignalR دیدن کنید. تکنولوژی SignalR از تعداد زیادی از تکنولوژی های انتقال داده از قبیل WebSocket پشتیبانی می‌کند و بسیاری از پیچیدگی ها و جزئیات پیاده سازی را از دید برنامه نویس مخفی و یا Abstract می نمایند.

ارتباطات real-time بین کلاینت و سرور چه با تکنولوژی WebSocket اتفاق بیفتند و یا از تکنولوژی های دیگر استفاده شود مزایای بسیاری را در بسیاری از سناریوها در اختیار ما قرار می‌دهد. برای مثال:

  • پیاده‌سازی کردن اپلیکیشن های چت روم
  • اپلیکیشن های مانیتورینگ
  • اپلیکیشن‌های بررسی پیشبرد یک تسک
  • اپلیکیشن هایی که از نوتیفیکیشن ها استفاده می کنند
  • و اپلیکیشن هایی که به صورت تعاملی فرم هایی را در اختیار کاربر قرار می دهند

می‌توانند مثال هایی از استفاده کردن از WebSocket و SignalR باشند. زمانی که ارتباط با کلاینت را در اپلیکیشن ایجاد می‌کنیم به طور کلی دو جزء تشکیل دهنده و یا کامپوننت را ایجاد خواهیم کرد:

  • اول Server-side connection manager و یا مدیر اتصال سمت سرور که در قالب SignalR Hub و WebSocketManager و WebSocketHandler پیاده سازی می شود. در این رابطه در بسته ی آموزش ویدئویی شروع به کار با ASP.NET Core و SignalR بیشتر صحبت کرده ایم.
  • استفاده کردن از یک Client-side library و یا کتابخانه سمت کاربر است. دقت کنید که در این سناریو منظور ما از کلاینت مرورگر کاربر نمی باشد.

اپلیکیشن های موبایل، اپلیکیشن های کنسولی و همچنین دیگر Native Application ها می توانند با استفاده از SignalR و WebSocket با سرور اتصال برقرار کنند. مثالی که در قسمت زیر مشاهده می کنید در رابطه با ایجاد اتصال بین کلاینت و سرور می باشد و با استفاده از این برنامه ساده تمامی محتوای ارسال شده به یک اپلیکیشن چت در کنسول چاپ خواهد شد.