SignalR

آموزش رایگان SignalR | سیگنال آر در Asp .Net Core

Signal R یکی از جذاب ترین کتابخانه های زبان برنامه نویسی ASP.Net و بسیار پرطرفدار میان برنامه نویسان و طراحان وب می باشد. بهترین و مهم ترین کاربرد کتابخانه Signal R امکان مشاهده تغییرات لحظه ای طراحی وب سایت را نشان می دهد. در واقع با استفاده از Signal R ارتباط مستمر، سریع و بدون واسطه بین سرویس گیرنده و سرور را برای برنامه نویس فراهم می کند.

آخرین بروزرسانی در تاریخ ۱۴۰۲/۱۰/۰۹
06 : 58 : 47

قیمت دوره :

courseTitle

Signal R چیست و چه کاربردی دارد؟

Signal R یک کتابخانه منبع باز تحت دات‌نت برای توسعه راحت‌تر وبسایت و ارتباطات بلادرنگ است و به توسعه‌دهندگان برنامه‌های و در ASP.Net کمک می‌کند. منظور از عملکرد بلادرنگ به این معناست که هنگامی که کاربری در حال ایجاد تغییرات است، همزمان کاربر دیگری می‌تواند تغییرات را بدون بارگیری مجدد صفحه مشاهده کند.

بنابراین عملکرد بلادرنگ وبسایت به معنای این است که بتوان کد سرور را به محتوایی که کاربر به آن دسترسی دارد، بفرستیم و همزمان کاربر تغییرات را بدون نیاز به رفرش کردن صفحه همزمان ببیند. در مدل واکنشی  HTTP  باید هر بار برای اتصال به سرور یک درخواست ارسال کنیم، اما با کمک  Signal R می‌توان ارتباطی مستمر بین سرویس گیرنده و سرور را فراهم کرد.

سیگنال‌آر داده ها را در متن غیرمتراکم JSON یا متن ساده انتقال می‌دهد بنابراین اگر می‌خواهید داده ها را با JSON فشرده ارسال کنید، باید منطق خود را در سمت سرور و همچنین در سمت کاربر بنویسید. همچنین، برای دستیابی به عملکرد فوری و حداکثری از تکنیک‌های ناهمزمان استفاده می‌کند.

 

SignalR از تکنیک های زیر برای مدیریت ارتباط پشتیبانی میکند:

  • Web Sockets
  • Server-Sent Events
  • Long Polling

در واقع SignalR به صورت خودکار بهترین تکنیک را انتخاب و از آن استفاده می کند.

 

موارد استفاده از SignalR

  • شبکه های اجتماعی
  • برنامه هایی که به Notification نیاز دارند
  • برنامه هایی که نیاز به تعامل با کاربر دارند

و ...

 

برخی از ویژگی های SignalR

  • ارسال پیام به همه کاربران متصل
  • مدیریت خودکار اتصال
  • ارسال پیام به گروه خاصی از کاربران

و ...

 

پیشنیاز های دوره آموزش رایگان SignalR

  1. دوره آموزشی Asp.Net Core
  2. دوره آموزشی Html-Css
  3. دوره آموزشی jQuery

توجه داشته باشید که هر سه دوره در وبسایت آکادمی کدیاد به طور جامع و کاملا رایگان وجود دارد!

 

دوره آموزش رایگان SignalR آکادمی کدیاد

 

روش‌های ارتباطی سیگنال‌آر

Signal R دو مدل برای برقراری ارتباط بین کاربر و سرور فراهم می‌کند:

  • اتصالات مداوم

اتصالات مداوم دسترسی مستقیم به یک پروتکل ارتباطی سطح پایین را که سیگنال‌آر فراهم کرده، ایجاد می‌کند. هر اتصال کاربر به یک سرور توسط یک ID  اتصال شناسایی می‌شود. بنابراین اگر در برنامه خود به کنترل بیشتری بر روی اتصال نیاز دارید، در سیگنال‌آر می‌توانید از این مدل استفاده کنید.

این مدل در جایی که می‌خواهید از مدل پیام‌رسانی و دیسپچینگ به جای فراخوانی از راه دور استفاده کنید و یا هر برنامه‌ای که از مدل پیام‌رسان استفاده می‌کند و همچنین زمانی که می‌خواهید به سیگنال‌آر گزارش دهید، قابل استفاده است.

  • هاب‌ها

ها‌ب‌ها یک API سطح بالا برای کاربر و سرور به‌منظور فراخوانی روش‌های یکدیگر فراهم می‌کنند. این موضوع برای توسعه دهندگانی که روی API  فراخوانی از راه دور کار کرده‌اند، بسیار آشنا خواهد بود. اگر چندین نوع پیام دارید که می‌خواهید بین یک سرور و کاربر ارسال کنید، توصیه می‌شود از ها‌ب‌ها استفاده کنید تا نیازی به انجام دیسپچینگ خود نداشته باشید.

می‌توانید هم با استفاده از ها‌ب‌ها و هم اتصال مداوم یک برنامه توسعه دهید، تنها تفاوت در این است که اجرای آن با هاب آسان‌تر خواهد بود. اکنون ما ایده‌ای از اینکه Signal R چیست داریم؛ بنابراین نیاز است تا در مورد چرایی استفاده از آن صحبت کنیم.

 

نحوه یادگیری SignalR در ASP,Net Core

 

چرا باید از سیگنال‌آر استفاده کرد؟

با استفاده از سیگنال‌آر می‌توانیم برنامه‌های وبی ایجاد کنیم که نیاز به بروزرسانی با فرکانس بالا از سرور دارند، مثل اکسل، داشبوردها، بازی‌ها و برنامه‌های چت. سیگنال‌آر از Web Sockets و  HTML 5 API استفاده می‌کند که به ارتباطات دو طرفه کمک می‌کنند. این برنامه همچنین یک API برای تماس از راه دور (RPC) سرور به کاربر فراهم می‌کند، این امر ممکن است برای شما چیز جدیدی باشد؛ زیرا بیشتر اوقات ما از یک مدل درخواست و پاسخ استفاده می‌کنیم.

Signal R شامل مدیریت اتصال خودکار است و این امکان را برای پخش پیام به همه کاربران متصل یا به یک کاربر خاص فراهم می‌کند. در سیگنال‌آر ارتباط بین سرور و کاربر پایدار است؛ در حالی که در HTTP پایدار نیست. بنابراین اکنون می‌دانیم کجا باید از سیگنال‌آر استفاده کرد:

اعلان (Notification)

اگر می‌خواهید به یک کاربر یا همه کاربران اطلاع‌رسانی کنید، می‌توانید از سیگنال‌آر استفاده کنید. اعلان می‌تواند شامل برخی از هشدارها، یادآوری‌ها، بازخورد یا نظرات و غیره باشد.

چت

اجرای یک برنامه چت با استفاده از سیگنال‌آر بسیار آسان است که می‌تواند یا چت یک به یک باشد یا چت گروهی.

بازی‌ها

سیگنال‌آر به طراحی و توسعه یک برنامه بازی که نیاز به فشار مکرر از سرور و غیره دارد، کمک می‌کند.

 

چگونه باید از Signal R استفاده کرد؟

در اینجا  قصد نداریم مستقیماً وارد کدنویسی شویم. ابتدا توضیح می‌دهیم که چگونه یک تماس از راه دور (RPC)  رخ می‌دهد.

بیایید فرض کنیم که در سمت سرور ما متدی به نام MyServerFunction () داریم. بنابراین اگر می‌خواهیم آن روش را از کاربر فراخوانی کنیم می‌توان با استفاده از "$  .connection.myHub.server.MyServerFunction ()"  آن را فراخوانی کرد و فرض می‌کنیم که یک تابعJavaScript  به نام "myClientFunction ()" داریم و ما می‌خواهیم آن را از سرور با استفاده از متد "Client.Client (id). myClientFunction ()" فراخوانی کنیم.

شاید بسیاری از شما فکر کنید این کلمات کلیدی اتصال، هاب و سرور برای چیست. لطفاً صبور باشید، تمامی این‌ها توضیح داده خواهند شد. برای درک بهتر نمودار زیر را ببینید.

 

آموزش جامع SignalR رایگان

 

همانطور که مشاهده می‌کنید، در طول RPC با استفاده از سیگنال‌آر، یک هاب در سمت سرور قرار می‌گیرد و کاربر هم دارای پروکسی هاب خواهد بود. وقتی پروکسی می‌خواهد یک متد واقعی از سرور را فراخوانی کند، شی فراخوانی‌های سبک Ajax را به متد واقعی پیاده‌سازی می‌کند. درحالی‌که وقتی سرور می‌خواهد متد کاربر را فراخوانی کند، این موضوع با استفاده از انواع پویا و یک پروتکل ویژه که تماس‌ها را به سمت سرور بسته‌بندی می‌کند، حل می‌شود.

زمانی که یک برنامه اتصال سیگنال‌آر دارد و می‌خواهد برخی از داده‌ها را به سرور ارسال کند، داده‌ها به‌صورت خام ارسال نمی‌شوند، بلکه سیگنال‌آر داده‌ها را در JSON با سایر اطلاعات بسته‌بندی کرده و همه آن‌ها را قبل از ارسال به سرور در JOSON  بارگذاری می‌کند.

 

شروع به کار با Signal R

برای شروع، ابتدا باید یک وبسایت خالی ASP.Net ایجاد کنیم. پس از ایجاد وبسایت، به قسمت explorer بروید -> روی پروژه کلیک راست کرده و "Manage Nuget Package"  را انتخاب کنید. وقتی پنجرهPacket Manager  باز شد، بسته  سیگنال‌آر را جستجو کنید. بسته سیگنال‌آر Microsoft ASP.NET   را نصب کنید. هنگامی که ویژوال استودیو نصب بسته را به پایان رساند، شما می‌توانید شروع به کار کنید. بعد از آن دو کلاس و یک صفحه HTML اضافه کنید.

  • ChatHub.cs
  • Startup.cs
  • index.html

کلاس ChatHub

این چیزی است که در این کلاس می‌توانید ببینید:

 

کلاس ChatHub در سیگنال آر

 

ما در کلاس خود متدی به نام "send" داریم که می‌توانید در این کلاس هر متدی به هر نامی داشته باشید. اما باید نام این متد را بخاطر بسپارید، زیرا باید این متد را از JavaScript در سمت کاربر فراخوانی کنید. همچنین توجه داشته باشید که این کلاس در حال ارث‌بری از یک کلاس دیگر است.

آنچه این متد انجام خواهد داد این است که یک فایل JavaScript ایجاد می‌کند که دارای هر متدی است که کلاس وارث دارد. به‌عنوان مثال، در این حالت، پرونده جاوا اسکریپت تولید شده دارای متدی به نام Send () است. در حال حاضر کاری که این کلاس انجام می‌دهد این است که در هر 2 ثانیه پیام را بین همه کاربران خود توزیع می‌کند.

کلاس  Startup.cs

این چیزی است که در کلاس Startup.cs داریم:

 

کلاس Staartup.cs در سیگنال آر

 

این کلاس نوعی پیکربندی است که می‌تواند در مسیریابی ارتباط از سرور به کاربر کمک کند.

فایل  Index.html

این همان چیزی است که رابط کاربری ما دارد

فایل  Index.html در سیگنال آر

 

در خط شماره 23 ما یک کابر برای کلاس ChatHub در JavaScript ایجاد کرده‌ایم. همچنین در خط شماره 26، یک متد به نام BroadMessage ایجاد کرده‌ایم، همان متدی که در خط 22 کلاس ChatHub داریم. در کلاسInchathub ، مقادیر را در متد BroadcastMessage منتقل می‌کنیم که آن را در UI نمایش می‌دهیم.

وقتی ارتباط با سرور با موفقیت برقرار شد، ارتباط را با فراخوانی متد "send" سرور در خط شماره 32 آغاز می‌کنیم. اگر برنامه را اکنون اجرا کنید، تعداد اعداد روی صفحه را به شما نشان می‌دهد که هر 2 ثانیه به‌روز می‌شود.

 

پلتفرم‌های پشتیبانی Signal R

در اینجا بررسی می‌کنیم چه کاربران و سرورهایی توسط سیگنال‌آر پشتیبانی می‌شوند.

 

  • نیازمندی‌ها و الزامات سیستم سرور

اجزای سرور سیگنال‌آر می‌توانند روی پیکره‌بندی‌های مختلف سرور سوار شوند. در ادامه نسخه‌های پشتیبان سیستم عامل‌ها، چارچوب دات نت، سرور اطلاعات اینترنتی و سایر اجزا توصیف می‌شوند:

  • سیستم عامل‌های پشتیبان سرور

اجزای سرور Signal R می توانند در سیستم عامل‌های سرور یا کاربر زیر میزبانی شوند. توجه داشته باشید که برای اینکه سیگنال‌آر از WebSockets استفاده کند، به ویندوز سرور 2012، ویندوز سرور 2016 یا ویندوز 8 نیاز است.

  • ویندوز سرور 2016
  • ویندوز سرور 2012
  • ویندوز سرور 2008
  • ویندوز 10
  • ویندوز 8
  • ویندوز 7
  • Windows Azure

 

  • نسخه NET Framework سرور پشتیبان

نسخه دوم سیگنال‌آر تنها فقط در NET Framework 4.5  پشتیبانی می‌شود.

  • نسخه‌های IIS سرور پشتیبان

هنگامی که  Signal R در IIS میزبانی می‌شود، نسخه‌های زیر پشتیبانی می‌شوند. توجه داشته باشید که اگر از سیستم عامل کاربر مانند (ویندوز 8 یا ویندوز 7) استفاده شود، نیاز نیست از نسخه‌های کامل IIS یا کاسینی استفاده شود، زیرا تعداد اتصال همزمان محدود و 10 عدد است و از آنجا که سرعت اتصالات بالاست، ارتباط سریعا برقرار شده و بلافاصله پس از استفاده دیگر دفع نمی‌شوند.  IIS Express باید در سیستم عامل‌های کاربران استفاده شود.

همچنین توجه داشته باشید که Signal R برای استفاده از  WebSocket، باید از  IIS 8 یا IIS 8 Express استفاده شود. سرور باید از ویندوز 8، ویندوز سرور 2012 یا بالاتر استفاده کند و همچنین WebSocket باید در IIS فعال باشد.

  • IIS 8 یا IIS 8 Express
  • IIS 7
  • IIS 7.5

IIS  همچنین باید در مود یکپارچه در حال اجرا باشد. توجه داشته باشید که مود کلاسیک پشتیبانی نمی‌شود. در صورت اجرای IIS در مود کلاسیک ممکن است تاخیر پیام‌ها تا 30 ثانیه نیز برسد.

 

الزامات و نیازمندی‌های سیستم کاربر

از Signal R می توان در انواع سیستم عامل‌های کاربر استفاده کرد. این بخش نیازهای سیستم برای استفاده از سیگنال‌آر در مرورگرهای وب، برنامه‌های دسکتاپ ویندوز، برنامه‌های Silverlight و دستگاه‌های تلفن همراه را توصیف می‌کند.

مرورگرهای وب

مرورگرهای وب سیگنال‌آر می‌توانند در انواع مرورگرهای وب استفاده شوند، اما معمولاً فقط از دو نسخه اخیر پشتیبانی می‌شود. برنامه‌هایی که از سیگنال‌آر در مرورگرها استفاده می‌کنند باید از jQuery نسخه 1.6.4 یا نسخه‌های بعدی (مانند 1.7.2 ، 1.8.2 یا 1.9.1) استفاده کنند. از  Signal R می‌توان در مرورگرهای زیر استفاده کرد:

  • Microsoft Internet Explorer  نسخه‌های 11. فقط ویندوز.
  • Microsoft Edge. نسخه‌های دسک‌تاپ و موبایل
  • Mozilla Firefox . نسخه فعلی که هر دو نسخه Windows و Mac. را پشتیبانی می‌کند.
  • Google Chrome نسخه فعلی که هر دو نسخه Windows و Mac. را پشتیبانی می‌کند.
  • سافاری: نسخه فعلی که  هم نسخه Mac و هم iOS.را پشتیبانی می‌کند.
  • اپرا: نسخه فعلی که فقط ویندوز را پشتیبانی می‌کند.
  • مرورگر اندروید

 

برنامه‌های Windows Desktop و Silverlight

علاوه بر اجرا در یک مرورگر وب، سیگنال‌آر می‌تواند در برنامه‌های مستقل Windows یا Silverlight کاربر نیز میزبانی شود. در ادامه به آن‌ها اشاره می‌شود:

  • برنامه‌های کاربردی که از .NET 4 استفاده می‌کنند در Windows XP SP3 یا بالاتر پشتیبانی می‌شوند.
  • برنامه‌هایی که از 4.5.NET Framework  استفاده می‌کنند، در ویندوز ویستا یا بالاتر پشتیبانی می‌شوند.

 

توسعه برنامه‌ با SignalR

 

نتیجه‌گیری

Signal R کتابخانه‌ای برای توسعه برنامه‌های تحت وب و به صورت بلادرنگ است و در ساختارهایی که لحظه‌ای به‌روزرسانی می‌شوند، مانند چت، بازی‌ها و... کاربرد دارد. برای کار با آن ابتدا باید سیستم‌ها و ابزارهای مورد نیاز را فراهم کرد.

مشاهده بیشتر

سرفصل های دوره

آموزش مقدماتی SignalR

نظرات دانشجویان

 سیدمحمدمهدی  موسوی

سیدمحمدمهدی موسوی

سلام علیکم خداقوت.بابت همه زحمات متشکرم.ان شاالله همیشه سلامت باشید.

با سلام وقت بخیر بابت این اموزش خوب خواستم تشکر فراوان کنم خیلی خوب بود خیلی مفاهیم و نحوه کد نویسی جدید یاد گرفتم خدا خیرتون بده

Mohammad Alaiey

Mohammad Alaiey

استاد عالی بود یکی از بهترین دوره هایی بود که دیدم مرسی.