معرفی و بررسی SignalR
Loading...
بررسی SignalR

این مقاله ایده اولیه ای درباره API جدید توسعه دهندگان به نام SignalR را می دهد.

بررسی SignalR

در اپلیکیشن های ASP.NET قبلی، کاربران برای مشاهده داده های جدید صفحه را refresh می کردند یا صفحات برای بازیابی داده های جدید از “long polling” استفاده می کردند، به عنوان مثال، زمانی که داده های جدید به سرور می رسند، به طور مستقیم به همه کلاینت ها یا کلاینت های خاصی منتقل نمی شوند، به همین دلیل کاربر باید صفحه را refresh کند و صفحه به روزرسانی شود.

برای مثال، می توانید به cricinfo.com بروید، مشاهده می کنید که یک صفحه برای یک یا دو ثانیه و چندین بار refresh می شود و امتیاز به روزرسانی نمی شود. در چنین موقعیت هایی لازم است که از API جدید مایکروسافت به نام “SignalR” استفاده نماییم.

SignalR چیست؟

SignalR یک API برنامه نویسی جدید است که برای اپلیکیشن های ASP.NET فراهم شده است، برای اضافه کردن عملکرد بلادرنگ به اپلیکیشن های ASP.NET استفاده می شود. عملکرد بلادرنگ وب قابلیت داشتن کد سرور برای ارسال محتوا به کلاینت های متصل است.

SignalR عملکرد “server push” و “broadcasting” را پشتیبانی می نماید. مدیریت اتصال را به طور اتوماتیک کنترل می کند. در اتصالات قدیمی HTTP برای ارتباط کلاینت-سرور برای هر درخواست دوباره برقرار می شود، اما SignalR یک ارتباط پایدار بین کلاینت و سرور برقرار می کند. در SignalR به جای مدل درخواست-پاسخ امروزی، کد سرور، کد کلاینت را با استفاده از Remote Procedure – RPC در مرورگر فراخوانی می کند. SignalR یک API اپن سورس است و از طریق GitHub قابل دسترسی است.

موارد استفاده:

  1. اپلیکیشن های چت روم
  2. اپلیکیشن های مانیتورینگ بلادرنگ
  3. به روزرسانی های پیشرفت کار
  4. فرم های بلادرنگ

مورد استفاده SignalR در اپلیکیشن چت روم را می توانید در تصویر زیر مشاهده نمایید:

بررسی SignalR

در مثال بالا، به محض اینکه user2 پیام هایی را ارسال می کند، توسط کاربران دیگر دریافت می شود.

جزئیات API

SignalR دو مدل برای ارتباط فراهم می نماید:

  1. API اتصال پایدار دسترسی مستقیمی به سطح پایین پروتکل اتصالی را که SignalR ارائه می دهد، به برنامه نویس می دهد. این API از فرمت واقعی پیام ارسال شده استفاده می کند که لازم است مشخص شود و اگر برنامه نویس ترجیح دهد که به جای فراخوانی از راه دور با پیام ها کار کند از آن استفاده می شود.
  2. Hubs: سطح بالایی از API نوشته شده روی اتصال پایدار است. این API به کلاینت و سرور اجازه می دهد تا متدهای یکدیگر را به طور مستقیم فراخوانی نمایند. Hubs همچنین اجازه می دهد که پارامترهای strongly typed را به متدها ارسال کرد و اتصال مدل را فعال می سازد.

کد

مراحل:

  1. ویژوال استودیو را باز می کنیم.
  2. یک پروژه جدید ایجاد کرده، ASP.NET Empty Web Appliction را انتخاب و نام آن را “ChatRoomApplication” می گذاریم.
  3. به منوی Tools رفته و Package Manager Console را باز می کنیم.
  4. اگر Nuget Package Manager console را نداشته باشیم پس آن را دانلود می کنیم. برای این کار به Tools Extension Manager رفته و در کادر جستجو “NuGet Package Manager” را وارد کرده و آن را دانلود می کنیم.
  5. Package Manager console را باز می کنیم. (Tools Library Package Manager Package Manager Console).
  6. دستور “install-Package Microsoft.AspNet.SignalR” را اجرا می کنیم.
  7. این کار رفرنس های SignalR DLL را به اپلیکیشن ما اضافه می کند.
  8. در پنجره Solution Explorer روی نام پروژه راست کلیک کرده و کلاس “ChatHub” را اضافه می کنیم. یک فایل ChatHub.cs اضافه خواهد شد.
  9. این کلاس را از کلاس Hub مشتق می کنیم که باید به شکل زیر دربیاید:
public class ChatHub : Hub
{
}

متد Send را در کلاس ChatHub می نویسیم:

public class ChatHub : Hub
{
    public void Send(string name, string message)
    {
        Clients.All.sendMessage(name,message);
    }
}

۱۰. حالا فایل Global.asax را به اپلیکیشن اضافه می نماییم. و در رویداد application_start، hub خود را به وسیله RouteTable.RoutesMapHubs() نگاشت می کنیم. به شکل زیر:

protected void Application_Start(object sender,EventArgs e)
{
    RouteTable.Routes.MapHubs();
}

۱۱. حالا یک صفحه ASPX با نام default.aspx اضافه می کنیم.

۱۲. کد زیر را در بخش Head ضافه می کنیم.

<script src="http://code.jquery.com/jquery-1.8.2.min.js" type="text/javascript"></script>

۱۳. کد زیر را به قسمت Body کپی می کنیم.


<div>
<input type="text" id="msg" />
<input type="button" id="send" value="Send" />
<input type="hidden" id="displayname" />

<ul id="messages">
</ul>

</div>


۱۴. به همین ترتیب، حالا برنامه را اجرا می کنیم، چندین پنجره از مرورگر باز کرده و آدرس مشابه را در آن ها کپی می کنیم. و یک پیام را در textbox تایپ می کنیم، روی دکمه ارسال کلیک می نماییم و مشاهده می کنیم که پیام در همه مرورگرها نمایش داده می شود.



avatar فاطمه زکایی

فاطمه زکایی هستم. فارغ التحصیل کارشناسی مهندسی نرم افزار، مدت سه سال هست که در زمینه توسعه اپلیکیشن های تحت وب و اندروید و همچنین تولید محتوای تخصصی برنامه نویسی تحت وب و اندروید در مجموعه mspsoft در خدمت شما هستم.

آخرین مطالب و تخفیفات در کانال تلگرام :) کانال تلگرام ام اس پی سافت
مطالب مرتبط
ديدگاه خود را ارسال کنيد


محبوب ترين ويدئو هاي انلاين
دوره برنامه نویسی فروشگاه اینترنتی
  • تعداد اعضا 80k
  • قيمت دوره۱۰۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره آموزشی سیستم ثبت سفارش آنلاین
  • تعداد اعضا 80k
  • قيمت دوره۵۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...
دوره طراحی سیستم مدیریت مشتریان
  • تعداد اعضا 80k
  • قيمت دوره۵۰,۰۰۰ تومان
  • امتيازدهي
    1 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 51 vote, average: 5٫00 out of 5( 5٫00 از 1 رای )
    Loading...