آموزش رایگان SignalR | سیگنال آر در Asp .Net Core
بررسی کامل دوره
- نظرات :36 نظر4.1
- آموزشگاه:کدیاد3.8
- مدرس:محمد اشرافی3.9
- زمان:6 ساعت و 58 دقیقه
- مدرک:ندارد
- توضیحات:دارد
توضیحات
Signal R چیست و چه کاربردی دارد؟
Signal R یک کتابخانه منبع باز تحت داتنت برای توسعه راحتتر وبسایت و ارتباطات بلادرنگ است و به توسعهدهندگان برنامههای و در ASP.Net کمک میکند. منظور از عملکرد بلادرنگ به این معناست که هنگامی که کاربری در حال ایجاد تغییرات است، همزمان کاربر دیگری میتواند تغییرات را بدون بارگیری مجدد صفحه مشاهده کند.
بنابراین عملکرد بلادرنگ وبسایت به معنای این است که بتوان کد سرور را به محتوایی که کاربر به آن دسترسی دارد، بفرستیم و همزمان کاربر تغییرات را بدون نیاز به رفرش کردن صفحه همزمان ببیند. در مدل واکنشی HTTP باید هر بار برای اتصال به سرور یک درخواست ارسال کنیم، اما با کمک Signal R میتوان ارتباطی مستمر بین سرویس گیرنده و سرور را فراهم کرد.
سیگنالآر داده ها را در متن غیرمتراکم JSON یا متن ساده انتقال میدهد بنابراین اگر میخواهید داده ها را با JSON فشرده ارسال کنید، باید منطق خود را در سمت سرور و همچنین در سمت کاربر بنویسید.
سیگنالآر برای دستیابی به عملکرد فوری و حداکثری از تکنیکهای ناهمزمان استفاده میکند.
SignalR از تکنیک های زیر برای مدیریت ارتباط پشتیبانی میکند:
Web Sockets
Server-Sent Events
Long Polling
در واقع SignalR به صورت خودکار بهترین تکنیک را انتخاب و از آن استفاده می کند.
موارد استفاده از SignalR
شبکه های اجتماعی
برنامه هایی که به Notification نیاز دارند
برنامه هایی که نیاز به تعامل با کاربر دارند
و ...
برخی از ویژگی های SignalR
ارسال پیام به همه کاربران متصل
مدیریت خودکار اتصال
ارسال پیام به گروه خاصی از کاربران
و ...
پیشنیاز های دوره
دوره آموزشی Asp.Net Core
دوره آموزشی Html-Css
دوره آموزشی jQuery
روشهای ارتباطی سیگنالآر
Signal R دو مدل برای برقراری ارتباط بین کاربر و سرور فراهم میکند:
اتصالات مداوم
اتصالات مداوم دسترسی مستقیم به یک پروتکل ارتباطی سطح پایین را که سیگنالآر فراهم کرده، ایجاد میکند. هر اتصال کاربر به یک سرور توسط یک ID اتصال شناسایی میشود. بنابراین اگر در برنامه خود به کنترل بیشتری بر روی اتصال نیاز دارید، در سیگنالآر میتوانید از این مدل استفاده کنید.
این مدل در جایی که میخواهید از مدل پیامرسانی و دیسپچینگ به جای فراخوانی از راه دور استفاده کنید و یا هر برنامهای که از مدل پیامرسان استفاده میکند و همچنین زمانی که میخواهید به سیگنالآر گزارش دهید، قابل استفاده است.
هابها
هابها یک API سطح بالا برای کاربر و سرور بهمنظور فراخوانی روشهای یکدیگر فراهم میکنند. این موضوع برای توسعه دهندگانی که روی API فراخوانی از راه دور کار کردهاند، بسیار آشنا خواهد بود. اگر چندین نوع پیام دارید که میخواهید بین یک سرور و کاربر ارسال کنید، توصیه میشود از هابها استفاده کنید تا نیازی به انجام دیسپچینگ خود نداشته باشید.
API چیست و چه کاربردی دارد؟
میتوانید هم با استفاده از هابها و هم اتصال مداوم یک برنامه توسعه دهید، تنها تفاوت در این است که اجرای آن با هاب آسانتر خواهد بود. اکنون ما ایدهای از اینکه Signal R چیست داریم؛ بنابراین نیاز است تا در مورد چرایی استفاده از آن صحبت کنیم.
چرا باید از سیگنالآر استفاده کرد؟
با استفاده از سیگنالآر میتوانیم برنامههای وبی ایجاد کنیم که نیاز به بروزرسانی با فرکانس بالا از سرور دارند، مثل اکسل، داشبوردها، بازیها و برنامههای چت. سیگنالآر از 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 ()" فراخوانی کنیم.
شاید بسیاری از شما فکر کنید این کلمات کلیدی اتصال، هاب و سرور برای چیست. لطفاً صبور باشید، تمامی اینها توضیح داده خواهند شد. برای درک بهتر نمودار زیر را ببینید.
همانطور که مشاهده میکنید، در طول 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
این چیزی است که در این کلاس میتوانید ببینید:
ما در کلاس خود متدی به نام "send" داریم که میتوانید در این کلاس هر متدی به هر نامی داشته باشید. اما باید نام این متد را بخاطر بسپارید، زیرا باید این متد را از JavaScript در سمت کاربر فراخوانی کنید. همچنین توجه داشته باشید که این کلاس در حال ارثبری از یک کلاس دیگر است.
آنچه این متد انجام خواهد داد این است که یک فایل JavaScript ایجاد میکند که دارای هر متدی است که کلاس وارث دارد. بهعنوان مثال، در این حالت، پرونده جاوا اسکریپت تولید شده دارای متدی به نام Send () است. در حال حاضر کاری که این کلاس انجام میدهد این است که در هر 2 ثانیه پیام را بین همه کاربران خود توزیع میکند.
کلاس Startup.cs
این چیزی است که در کلاس Startup.cs داریم:
این کلاس نوعی پیکربندی است که میتواند در مسیریابی ارتباط از سرور به کاربر کمک کند.
فایل 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 استفاده میکنند، در ویندوز ویستا یا بالاتر پشتیبانی میشوند.
نتیجهگیری
Signal R کتابخانهای برای توسعه برنامههای تحت وب و به صورت بلادرنگ است و در ساختارهایی که لحظهای بهروزرسانی میشوند، مانند چت، بازیها و... کاربرد دارد. برای کار با آن ابتدا باید سیستمها و ابزارهای مورد نیاز را فراهم کرد.
دوره آموزش رایگان SignalR | سیگنال آر در Asp .Net Core دورهای با امتیاز نهایی 4.8 میباشد و توسط دوره بین که موتور جستجوی بهترین دوره های آموزشی میباشد، تحلیل، بررسی و امتیازدهی شده است. مدت زمان این دوره 6 ساعت و 58 دقیقه میباشد که در کدیاد توسط محمد اشرافی مدرس این دوره ارائه شده است. قابل توجه است که این دوره مدرک ندارد و دوره مذکور رایگان میباشد.
همچنین میتوانید با کلیک بر روی دکمه شروع یادگیری به آموزشگاه ارائهدهنده متصل شوید و دوره آموزش رایگان SignalR | سیگنال آر در Asp .Net Core را تهیه نمایید.
علاوه بر این، شما عزیزان میتوانید همه دورههای طراحی وبسایت سراسر اینترنت را در صفحه طراحی وبسایت در دورهبین مشاهده، مقایسه و بهترین دوره از نظر کیفیت و قیمت را به آسانی انتخاب نمایید.
دورههای مشابه
آموزش کتابخانه سیگنال آر SignalR در ای اس پی دات نت ASP.NET Core
علیرضا بهارلوئی
فرادرس
آموزش سیگنال آر در Asp.Net Core بصورت پروژه محور
سیدمصطفی علیایی
دانشجویار
قابلیت های جدید ASP با ASP Core 5 – مهاجرت از core 3 به 5 NET. – رایگان
کیوان عبداله زاده
دانشجویار
آموزش ساخت فروشگاه اینترنتی با Asp net core مشابه دیجی کالا
سعید طاهری
دانشجویار
آموزش بررسی داده برداری سیگنال و کوانتیزاسیون در پردازش سیگنال دیجیتال (رایگان)
امید زندی
فرادرس
نظرات فراگیران
...rm68rm6
سلام چرا انلاین و افلاین بودن یوزر رو نزاشتین اگه بود عالی تر میشد.مثلا وقتی افلاین شد کاربر چراغش خاموش شه
...zoheir.
با سلام وقت بخیر بابت این اموزش خوب خواستم تشکر فراوان کنم خیلی خوب بود خیلی مفاهیم و نحوه کد نویسی جدید یاد گرفتم خدا خیرتون بده
...pecoyi938
آموزش شما هم شد مثل سریال های صدا سیما ، کلی حاشیه مطرح شد تا یکی موضوع اصلی مطرح بشه ، لزومی نداشت این همه پیچیدگی رو بیارید وسط که نهایتا از مبحث اصلی چند جمله بگید ، من که نتونستم با دات نت 6 در ویژوال استدیو 2022 پیاده سازیش کنم با اینکه مو به مو پیش میرفتم ولی خطا پشت خطا می داد
...r.mamoodabadi041
سلام و خسته نباشید استاد گرامی وقتی فایل جلسه سوم را update-database می نویسم خطای زیر را میدهد ممنون میشم راهنمائی بفرمائید A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
...a.akrami.904
سلام . من از،برنامه نویسی فقط یه کم با جاوااسکریپت اشنایی دارم با موتور بازی سازی کانستراکت کار،میکنم که بر پایه جاوا اسکریپت هست. توی بحث مولتی پلیر، یک بخش داره بعنوان signaling server میخواستم بیینم این همین چیزی هست که شما اموزش دادید ؟ چه جوری سیگنالینگ سرور ایجاد کنم ؟