این نوشتهعلمی به شما نماد می دهد که چطور میتوانید با به کار گیری طراحی اپلیکیشن از SignalR و ASP.NET Core نرمافزار های realtime را در انگولار بسازید.
برای استارت بایستی یک نرم افزار ASP.NET Core ساخت کرده و در آن SignalR hub را کانفیگ نمائید. ما از Web API استعمال می کنیم. میتوانید این فعالیت را با امر dotnet new webapi جاری ساختن دهید. بعد از ساختوساز، می بایست یک Hub بسازید (یکی اجزای اساسی در قاب ورک SignalR). در اینجا پیاده سازی hub میباشد.
using Microsoft.AspNetCore.SignalR;
namespace Backend
{
public class MessageHub : Hub
{
}
}
هیچ متدی در هاب پیاده سازی نشده میباشد. آن گاه می بایست کلاس Startup را برای به کار گیری از SignalR کانفیگ نمایید. با اضافه کردن کد پایین میتوانید این فعالیت را اجرا دهید.
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
services.AddControllers();
//code removed for brevity
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//code removed for brevity
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapHub(\"/messageHub\");
});
}
در حال حاضر مهیا تایید کانکشنهای SignalR میباشید. البته شما هیچ متدی را برای رابطه با کلاینت پیاده سازی نکردید. براین اساس به مکان تایپ کردن کد در Hub، می توانید کد را در کنترلر بنویسید؛ این طریق عالی میباشد زیرا میتوانید به تمامی پارامترهای HTTP جان دار در کنترلر دسترسی پیدا نمائید و میتوانید اکشن متدها را در معرض سیستم های اکسترنال قرار دهید به تا آنان بتوانند نوتیفیکیشنها را به نرمافزار های کلاینت ارسال نمایند. شما بایستی یک API controller نو بسازید و در کانستراکتور میتوانید HubContext را با به کارگیری از اینکه می توانید با SignalR تعامل داشته باشید اخذ نمایید. در اینجا این پیاده سازی گردیدهاست.
[ApiController]
[Route(\"[controller]\")]
public class MessageController : ControllerBase
{
private readonly IHubContext _hubContext;
public MessageController(IHubContext hubContext)
{
_hubContext = hubContext;
}
[HttpPost]
public async Task SendMessage([FromBody]string message)
{
await _hubContext.Clients.All.SendAsync(\"MessageReceived\", message);
return Ok();
}
}
درین کد، شما با استعمال از سیستم های اکسترنال می توانید که می تواند پیامها را به کلاینت ها ارسال نماید، SendMessage API endpoint را اکران دهید. بیاید در مرحله آتی پروژه Angular را بسازیم و کدی برای تعامل با سرور SignalR بنویسیم. شما میتوانید یک پروژه انگولار را با استعمال از فرمان ng new –minimal بسازید؛ پارامترminimal پوشه هایspec را نمیسازد. این برای اپلیکیشن های ایجاد پیشنهاد نمی شود. بعداز نصب پکیجهای تعلق (dependency) نرم افزار انگولار، شما بایستی پکیج کلاینت را برای SignalR نصب فرمائید تا با SignalR server رابطه داشته باشد. میتوانید این عمل را با فرمان npm i @microsoft/signalr ایفا دهید. بعداز نصب میتوانید فولدر app.component.ts را بهاین شکل تغییر تحول دهید.