در این پست از وبسایت پرووید در رابطه با آموزش ساخت یک اپلیکیشن با ASP.NET Core و SignalR #1 صحبت خواهیم کرد. ASP.NET Core نسل جدید تکنولوژی ساخت وب اپلیکیشن ها می باشد.

در این آموزش از وبسایت پرووید در رابطه با ساخت یک real-time app با استفاده از SingalR صحبت خواهیم کرد. مراحلی که در این آموزش انجام خواهند شد عبارت اند از:

  1. ساخت یک web project
  2. اضافه کردن client library مربوط به SignalR
  3. ساختن SignalR hub
  4. پیکربندی پروژه برای استفاده از SingalR
  5. اضافه کردن کدی که بتواند message هایی را از یک کلاینت به هر کلاینتی بفرستد.

در پایان کار یک chat application ساده شبیه به تصویر زیر خواهیم داشت. علاوه بر این می توانید فایل های پروژه ی مربوط به این آموزش را نیز دانلود کنید. ضمناً، توصیه می کنیم که از بسته ی آموزش ویدئویی شروع به کار برنامه نویسی ASP.NET Core وبسایت پرووید استفاده کنید.

برای استفاده از این آموزش باید Visual Studio 2017 را نصب کنید و همچنین .NET Core SDK 2.1 یا ورژن های بعدی را نیز نصب داشته باشید.

ساختن web project

از منوی File گزینه ی New Project را انتخاب کنید. در پنجره ی New Project از قسمت سمت چپ Installed و سپس Visual C# و پس از آن Web و نهایتاً ASP.NET Core Web Application را انتخاب کنید. نام پروژه را SignalRChat بگذارید. این موضوع در تصویر زیر نشان داده شده است.

از پنجره ی بعد گزینه ی Web Application را انتخاب کنید تا یک پروژه با razor page ها ساخته شود. علاوه بر این، target framework را بر روی .NET Core تنظیم کرده و گزینه ی ASP.NET Core 2.1 را انتخاب کنید و سپس OK را کلیک کنید. این موضوع نیز در تصویر زیر نشان داده شده است.

اضافه کردن SignalR client libray

دقت کنید که SignalR server library در متاپکیج Microsoft.AspNetCore.App قرار دارد. اما JavaScript client library به صورت خودکار در پروژه لحاظ نمی شود. ما در این آموزش از LibMan یا همان Library Manager برای به دست آوردن client library از unpkg استفاده می کنیم. شاید بدانید که unpkg یک CDN یا content delivery network است که می تواند هر چیزی که بر روی npm یا همان Node.js package manager وجود داشته باشد را در اختیار ما قرار دهد.

خب به منظور انجام این کار از Solution Explorer بر روی پروژه راست کلیک کرده و سپس Add و سپس Client-Side Library را انتخاب کنید. در پنجره ی Add Client-Side Library از قسمت Provider گزینه ی unpkg را انتخاب کنید. برای گزینه ی Library عبارت @aspnet/signalr@1 را وارد کنید و نهایتاً آخرین نسخه ای که در حالت preview یا پیش نمایش نیست را انتخاب کنید. این موضوع نیز در تصویر زیر نشان داده شده است.

بعد از گزینه ی Choose specific files را انتخاب کنید و فولدر dist/browser را بازن کرده و signalr.js و signalr.min.jsرا انتخاب کنید. گزینه ی Target Location را به wwwroot/lib/signalr/ تنظیم کرده و بر روی Install کلیک کنید. این موضوع نیز در تصویر زیر نشان داده شده است.

با انجام این کار LibMan یک فولدر با نام wwwroot/lib/signalr را ایجاد کرده و فایل های انتخابی را در این فولدر کپی می کند.

ساختن یک signalr hub

یک hub یک pipeline سطح بالا یا high-level است که communication های بین client و server را هندل می کند. در پروژه ی SignalRChat یک فولدر به نام Hubs ایجاد کرده و پس از آن یک کلاس با نام ChatHub.cs را در درون این فولدر ایجاد کنید و کد زیر را در آن قرار بدهید.

using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;

namespace SignalRChat.Hubs
{
    public class ChatHub : Hub
    {
        public async Task SendMessage(string user, string message)
        {
            await Clients.All.SendAsync("ReceiveMessage", user, message);
        }
    }
}

همانطور که در کد بالا می بینید کلاس ChatHub از کلاس Hub ارث بری می کند. در signalr کلاس Hub وظیفه ی مدیریت کردن connection ها و group ها و message ها را دارد. متد SendMessage می تواند توسط هر client ای که یک connection دارد صدا زده شود. این متد تمامی message های دریافت شده را به تمامی client ها ارسال می کند. ضمناً، کدهای مربوط به signalr به صورت asynchronous هستند. این موضوع باعث می شود که scalability به حداکثر برسد.

در قسمت بعدی از آموزش در رابطه با پیکربندی signalr صحبت خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *