ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

آموزش SignalR

بسم الله الرحمن الرحیم

دوره  آموزشی SignalR به زبان فارسی

آموزش SignalR  بخش اول

بخش اول
بخش دوم

بخش سوم

بخش چهارم

بخش پنجم- شروع ایجاد پروژه SignalR

بخش ششم - مروری بر مفاهیم SignalR

بخش هفتم- ایجاد پروژه Chat با SignalR

بخش هشتم - ایجاد پروژه Chat با SignalR در ASP.NET MVC

بخش نهم- ساخت یک Timer سمت سرور با SignalR

بخش دهم - آموزش ساخت یک پروژه SignalR با SQLDepedency در ASP.NET MVC


دوره آموزشی SignalR

SignalR چیست

ASP.NET SignalR یک کتابخانه برای توسعه دهندگان ASP.NET  است تا بتوانند به سادگی یک وب سایت Real Time ایجاد کنند.
قابلیت Real Time ویژگی است که باعث می شود سرور پس از دریافت داده ها آن ها را به کلاینت هایی که در حال حاضر به او متصل هستند ارسال کند، به جای روش های گذشته که سرور پس از ارسال یک درخواست اطلاعات را برای کلاینت می فرستاد در اینجا سرور اطلاعات را به محض دریافت به تمامی کلاینت های قابل دسترس ارسال می کند.


SignalR می تواند در انواع Application های Real Time مورد استفاده قرار گیرد. هنگامی که یک برنامه چت را می خواهید ایجاد کنید می توانید از قابلیت SignalR استفاده کنید.


هر وقت که باید کاربر صفحه را Refresh کند تا اطلاعات جدید را ببیند، یا اطلاعات یک داشبورد را می خواهید لحظه ای نشان دهید، یا صفحاتی مثل داکیومنت ها که می خواهید لحظه به لحظه نمایش داده شود و همچنین ذخیره شود و مانیتوریگ اطلاعات سایت و... همه ی این مسائل را می توانید با استفاده از SignalR انجام دهید.


SignalR همچنین نوع جدیدی از Application هایی که نیازمند بروز رسانی متوالی و دریافت اطلاعات از سمت سرور هستند را می تواند پشتیبانی کند، مثل بازی های آنلاین.

نوشتن بازی با SignalR

یک مثال خوب برای آموزش و دیدن خروجی SignalR دیدن این بازی است که می توانید سورس بازی را نیز دریافت کنید:

ShootR game


SignalR، API های ساده ای برای دسترسی سرور به کلاینت فراهم می کند (server-to-client remote procedure calls) به این ویژگی (RPC) می گویند که در کلاینت به وسیله جاوا و.NET در سمت سرور فراخوانی می شود.
SignalR همچنین API هایی برای مدیریت Connection در اختیار شما قرار می دهد به عنوان مثال: connect، disconnect  و grouping connections و... را می توانید مدیریت کنید.

آموزش SignalR

SignalR مدیریت Connection

SignalR مدیریت Connection را به صورت اتوماتیک انجام می دهد و به شما اجازه می دهد تا مانند یک Chat Room پیامک ها را به صورت Broadcast به تمامی کلاینت هایی که متصل هستند به صورت همزمان ارسال کنید اما این توان را در اختیار شما قرار می دهد که در صورت تمایل یک پیام را فقط به یک کلاینت ارسال کنید.
Connection بین کلاینت و سرور به صورت persistent (مداوم) است، و این کار متضاد با HTTP است که مدام بین کلاینت و سرور قطع خواهد شد.


در مورد نحوه ایجاد Connection بین دیتابیس ها و برنامه شما مقاله ای خواهم نوشت، زیرا متاسفانه به دلیل اینکه بسیاری از دوستان از SQL Server فقط شبیه یک منبع نگهداری اطلاعات استفاده می کنند و هیچگاه به تفاوت نحوه ی برقراری ارتباط با SQL Server و روش های آن پرداخته نشده است و بعضا اطلاعی نیز در مورد آن نداریم!.

در HTTP ارتباط بین سرور و کلاینت مداوم قطع و وصل می شود، به روش re-established  گفته می شود.

SignalR قابلیت server push

SignalR از قابلیت server push پشتیبانی می کنید، در این قابلیت کد درون سرور می تواند کد درون کلاینت که طبیعتا درون Browser قرار دارد را به وسیله Remote Procedure Calls (RPC) فراخوانی کند این طبیعتا برعکس روش وب امروزی است که کلاینت سرور را صدا می زند (request-response).


SignalR بسیار قدرمتند است زیرا می تواند به وسیله Service,SQL Server,Redis هزاران کلاینت را سرویس دهی کنید.

Redis در این مقاله توضیح داده شده است.

SignalR خوشبختانه Open Source است.

نظرات (۳)

درود و سپاس از آموزش های مفید و کاملتون.
من در سایتم (MVC) از singler برای ایجاد پست و کامنت های مربوط به هر پست استفاده کرده ام .
در _layout یک قسمت اضافه کردم برای اینکه اگر متن جدید اضافه شد، تعداد آن را نمایش بده برای این قسمت باید یک hub جدید و فایل اسکریپ جدید اضافه کنم ؟
اگر همون فایل های مربوط به پست را به layout انتقال بدهم در هر بار فراخوانی اون کل اسکریپ اجرا می شه که باعث پاییت آمدن سرعت اجرا می شه !!
ممنون می شم اگگه راهنماییم کنید.
پاسخ:
با عرض سلام خدمت شما
لطف دارید

باید خدمتتان عرض کنم که با مدیریت ارسال اطلاعات می توانید سرعت و Performance را کنترل نمایید، اما برای جلوگیری از پیچیدگی کار می توانید از hub مجزا نیز استفاده کنید.
برای کنترل و تست اطلاعاتی که در حال ارسال هستند از قسمت NET مرورگر خود می توانید استفاده کنید در آموزشها در خصوص این موارد توضیحات لازم ارائه شده است.

موفق باشید
  • Behzad Habibzadeh Bandari
  • بسیار کامل و عالی. سپاس
    سلام بابت آموزش خوبتون تشکر می کنم
    من با استفاده از مطالب شما برنامه چت نوشتم ولی همه می توانند متن چت را ببینند چطوری یک نفر در واقع یک نفر را مشخص کند و فقط با اون چت کند ؟
    با تشکر... 
    پاسخ:
    با عرض سلام

    باید در بخش Hub خود اطلاعات را دسته بندی کنید و Id ایی برای هر کاربر در نظر بگیرید و بر اساس آن این اطلاعات تنها به کاربر مورد نظر ارسال کنید.

    باتشکر
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی
    up
    ما را در گوگل محبوب کنید