توسعه Real Time با SignalR
شنبه 13 شهریور 1395در این مقاله قصد داریم که شما را با کاربرد های SignalR همراه با یک مثال توضیح دهیم تا نحوه کار با آن در برنامه های چت ببینید.
عموما ، اگر شما یک برنامه را توسعه دهید که نیاز به اطللاعات real-time داشته باشید، اولین چیزی که به ذهنتون میرسه ساختن یک تایمر که با یک تابع صدا زده میشود.
تابع رکورد را از پایگاه داده استخراج کنیم , و بررسی میکند که اطلاعات جدید موجود است یا خیر.
این راه رسیدن به realTime نیست. این روش منابع زیادی را هم در server و هم در client مصرف میکند و اگر دستگاه شما منابع کافی نداشته باشدبرنامه شما هنگ میکند یا جوابی به درخواست شما داده نمیشود.
راه حل چیست؟
راه حل استفاده از چیزهایی است که برای ارتبط با realTime ساخته شده است و ما کتابخانه ایی از آن ها در Microsoft داریم.
Signalr یک کتابخانه ای است برای گسترش NET. برای اضافه کردن تابع های realTime به برنامه ساخته شده با استفاده از تکنولوژی NET.
با سیستم های بلادرنگ چه چیزهایی میتوان ساخت:
1-برنامه چت
2-برنامه هایی که نیازمند اعلان های بلادرنگ هستند.
3-یک بازی آنلاین با بروزرسانی های متعدد.
--چگونه کار میکند:
Signalr از مفهوم socket استفاده میکند.شاید این سوال پیش بیاید که socket چیست؟
بیایید این موضوع را با یک مثال توضیح دهیم
یک پریز الکتریکی که منتظر دوشاخه برای متصل شدن است استفاده میکنیم.و انتقال فعلی به عنوان یک اتصال مناسب، شروع به اتصال خواهد کرد.
حالا جای پریز الکتریکی را با "server"،جای دو شاخه با 'Client' و به جای وضعیت فعلی 'data' را جایگرین میکنیم.
server در حال انتظار برای client متصل میشود و به زودی به عنوان یک client مناسب متصل خواهد شد و انتقال شروع خواهد شد.
بدین گونه socket شامل دو چیز است:
1-Server
2-Client
در سناریو بالا ، یک حفره در پریز وجود دارد،اما ممکن چند حفره وجود داشته باشد،به صورت نامحدود،بنابراین چندین دو شاخه میتواند به این پریز متصل شود.
server میتواند چندین Client داشته باشد و هر Client بر اساس برخی مکانیزم تعریف شده تحت server داده هارا دریافت میکنند.
حال میرویم سراغ Signalr:
Signalr دو نوع از API ها را که ما برای ارتباطات socket نیاز داریم تهیه میکند.
1-API برای ساختن سرور
2-API برای ساختن clients of the Signalr Server.
client API برای زبان JavaScript, Java, Node.js .NET اما شما مجبور خواهید بود به ساختن سرور در محیط NET.
مثال Real time :
مثال معروف در این زمینه Whatsapp, Hike, Wechat و غیره هستند.
حال این سوال پیش می اید که ما چگونه با استفاده از signalR میتوانیم یک همچین Application هایی را بسازیم.
ما میتوانیم برنامه ای مانند Whatsapp بلکه بهتر با استفاده از زبان NET. پیاده سازی کنیم که این به میزان توانایی در کد زدن شما بستگی دارد.
چگونگی ساختن برنامه Real time:
بیایید شکل و کار Whatsapp را مورد بررسی قرار دهیم.
• وقتی شما Whatsapp را نصب میکنید،شما با شماره موبایل خود sign میشوید،پس شماره موبایل شما به عنوان ID ذخیره میشود. که یه صورت identity ذخیره میشود.
• ما پیامی از طریق شماره موبایل برای فردی که این برنامه را نصب کرده ارسال میکنیم.زیرا Whatsapp از شماره موبایل ها به عنوان شناسه استفاده میکند.
•وقتی پیامی به کسی ارسال میشود،پیام به سمت chat Server میرود.
•وقتی پیام با موفقیت ارسال شد به سرور، Whatsapp با یک تیک(علامت) نشانش میدهد.
• وقتی پیام به گیرنده ارسال شد،سرور به عنوان تصدیق در کنار پیام از دو تیک(علامت) استفاده میکند.
این طریقه ی کار Whatsapp بود.
Whatsapp یک client است که برای ارسال پیام به سرور نیاز دارد، بنابراین ما به یک chat Server نیاز داریم.
پس ما برای ساخت Server از SignalR استفاده میکنیم.
دیگر به چه چیز هایی نیازمندیم؟
ما به یک Client برای ارتباط نیاز داریم.پس بیاییم یک برنامه Windows phone app به عنوان یک client با استفاده از Signalr .NET API بسازیم.
ما نیاز به یک برنامه چندین platforms داریم؛ مثل Android, Web و عیره.
همانطور که گفته شد SignalR برای Java, JS, Node.js و... API تهیه دیده است.پس شما میتوانید یک client یسازید که برای platform های مختلف.
- ASP.net
- 2k بازدید
- 6 تشکر