01.08.2023
1348
Ümumdünya Şəbəkəsi (World Wide Web, WWW), veb protokolları adlanan bir sıra əlaqə qaydaları sayəsində problemsiz şəkildə fəaliyyət göstərir. Bu protokollar, müştərilər (məsələn, brauzerlər) və serverlər arasında qarşılıqlı əlaqəni asanlaşdıraraq internetdə məlumat mübadiləsinin əsasını təşkil edir.
WebSocket, brauzer və server arasında ikitərəfli və canlı məlumat əlaqəsini təmin edən bir protokoldur. Bu, real-time əməliyyatlar, canlı söhbət və digər interaktiv veb tətbiqlər üçün ideal bir seçimdir. WebSocket, müstəqil bir protokol kimi fəaliyyət göstərərkən, HTTP və HTTPS ilə də oxşarlıqları var. Bu, veb tətbiqlərinin daha dinamik və interaktiv olmasına imkan verir.
WebSocket istifadə etmək üçün, brauzer və server arasında başlangıc əlaqəsi üçün HTTP, ardından isə müstəqil bir WebSocket əlaqəsi qurulur. Bu sayədə server və brauzer arasında sabit bir əlaqə yaranır və canlı məlumatın anında ötürülməsi mümkün olur.
ASP.NET SignalR, ASP.NET developerləri üçün hazırlanmış güclü bir kitabxanadır və tətbiqlərə real-time web funksiyalarını əlavə etmə prosesini sadələşdirir. Real-time web funksiyaları, server kodunun məzmununu anında mövcud olduğu kimi əlaqəli istifadəçilərə ötürmə qabiliyyətidir.
Real-time web funksiyaları, server və istifadəçilər arasında dinamik, canlı əlaqələr yaratmaq üçün istifadə olunur. Müstəqil request-response modelinə əsaslanan əvvəlki metodun əksinə, real-time funksiyalar serverə yeni məlumat olduğu anda istifadəçilərə proaktiv şəkildə göndərməyə imkan verir.
SignalR çoxyönlüdür və ASP.NET tətbiqlərinizə müxtəlif real-time xüsusiyyətlər əlavə etmək üçün istifadə edilə bilər. Chat tətbiqləri adi nümunə kimi göstərilsə də, SignalR-in bacarıqları bununla kifayətlənmir. SignalR-in effektiv şəkildə istifadə oluna biləcəyi bəzi sahələr:
Dashboards və Monitoring Tətbiqləri: İstifadəçiləri monitor və ya nəzarət ekranlarında canlı məlumatla təmin edin.
Collaborative Applications: Sənədlərin və ya əməkdaşlıq iş sahələrinin eyni anda redaktə edilməsinə imkan verin, bir istifadəçi tərəfindən edilən dəyişikliklər digərləri üçün dərhal görünür.
Job Progress Updates: Uzun müddətli tapşırıqların və ya işlərin gedişatı haqqında canlı bildirişlər təklif edir.
Real-Time Forms: İstifadəçi təcrübəsini məlumat dəyişdikcə formları canlı şəkildə yeniləyir.
SignalR real-time rabitəsinin həyata keçirilməsinin mürəkkəbliyini mücərrədləşdirir və developerlər üçün sadə API təqdim edir. O, server və müştərilər arasında davamlı əlaqə yaratmaq üçün WebSockets, Server-Sent Events (SSE) və uzun sorğu daxil olmaqla çoxsaylı nəqliyyat mexanizmlərindən istifadə edir.
Əlaqəni Qurmaq: SignalR server və istifadəçi arasında əlaqənin müzakirəsini və qurulmasını idarə edir və ən uyğun nəqliyyat protokolunu seçir.
Hubs: SignalR, server koduna qoşulmuş müştərilərdə metodları çağırmağa imkan verən yüksək səviyyəli boru kəməri kimi hublardan istifadə edir.
c#
public class MarketHub : Hub
{
public async Task AcceptData(List<Market> data) =>
await Clients.All.SendAsync("CommunicateMarketData", data);
}
Sabit Əlaqə: SignalR server və istifadəçilər arasında sabit bir əlaqə saxlayır, bu da tətbiqin səmərəli və problemsiz şəkildə əlaqə yaratmasına imkan verir.
SignalR-i ASP.NET tətbiqinə əlavə etmək üçün əsas addımları izləyin:
SignalR Paketini Quraşdırın: NuGet Package Manager vasitəsilə SignalR paketini ASP.NET layihənizə quraşdırın.
Hub Yaratın: Istifadəçilər tərəfindən çağırılabilən metodları təyin edən bir hub yaradın.
Client-Tərəfə İnteqrasiya: Saytlarınızda SignalR client kodunu tətbiq edin ki, əlaqəni qura bilsin və gələn yenilikləri idarə edə bilsin.
Server-Tərəfə Kommunikasiya: Hub-ınızdakı server tərəfli məntiqi bağlantını yazın ki, əlaqəli istifadəçilərə yenilikləri ötürsün.
ASP.NET SignalR, developerlərinə canlı funksiyaları səmərəli şəkildə əlavə etmək imkanı verərək maraqlı və interaktiv veb tətbiqləri yaratmağa imkan verir. Əgər istifadəçi interfeyslərini ənənəvi şəkildə təkmilləşdirmək istəyirsinizsə, SignalR prosesi sadələşdirir və real-time kommunikasiyanı ASP.NET developerləri üçün mümkün və çox rahat edir.
Məqaləni hazırladı: İsa Sadıqov
Təsdiqlədi: Əlinemət İsiyev