سرشار از زندگی

طبقه بندی موضوعی
پیوندهای روزانه

See english version here

بسته ی SignalR راهکاری مناسب برای پیاده سازی انتشار غیر همزمان در #C به حساب می یاد. حتما دیدید بعضی سایت ها بدون چک کردن منظم در پس زمینه (polling) هرگونه تغییر رو به صورت آنی نشون میدن!

اگر شما هم دوست دارید از این امکان زیبا بهره ببرید می تونید از SignalR استفاده کنید!

خب برای شروع باید این بسته رو به پروژه تون اضافه کنید؛ برای این کار اگر از 4.5 NET. استفاده می کنید، می تونید با Nuget دریافتش کنید (SignalR 2).

اما اگر از 4 NET. استفاده می کنید باید در بخش Package Manager Console، دستور زیر رو وارد کنید(SignalR 1.1.3):

Install-Package Microsoft.AspNet.SignalR -Version 1.1.3
بعد از نصب، پوشه ی Scripts توی پروژه تون ایجاد میشه که توش چند تا فایل هست!
حالا باید فایل Global.asax رو به پروژه تون اضافه کنید تا در شروع کار برنامه، SignalR فراخونی بشه!




حالا تو قسمت Application_Start، این کد رو قرار بدین:
RouteTable.Routes.MapHubs();
(حواستون به using ها باشه)
باید یه کلاس به اسم دلخواه که از Hub مشتق میشه هم بسازید:
using Microsoft.AspNet.SignalR;

namespace MyProj
{
public class EventHub:Hub
{
}
}
توش فعلا لازم نیست چیزی باشه!
حالا اسکریپت های مربوطه رو به صفحه اضافه کنید:
<script src="/Scripts/jquery-1.6.4.min.js" ></script>
<script src="/Scripts/jquery.signalR-1.1.4.js"></script>
<script src="/signalr/hubs"></script>
حالا برای تابع JavaScript ای که قرار است به طور ناهمزمان ایجاد شود، این کد را اضافه می کنیم:
<script>
$(function () {

var context = $.connection.eventHub;
context.client.refresh = function (someData) {
yourFunction(someData);
};
$.connection.hub.start();
});
</script>
حالا با کد #C زیر می تونید تابع بالا رو فراخوانی کنید(هر وقت این کد اجرا بشه یه فراخوانی ناهمزمان انجام میشه):
var now = DateTime.Now.ToLongTimeString();
var context = GlobalHost.ConnectionManager.GetHubContext<EventHub>();
context.Clients.All.refresh(now);
مثلا در کد بالا، زمان کنونی به تابع JavaScript ارسال میشه!
اگه جایی مبهم بود در نظرات اعلام کنید!
موافقین ۱ مخالفین ۰ ۹۳/۰۵/۰۸
مجید رحیمی

ASP.NET

async

SignalR

real-time

#C

نظرات  (۲)

۰۲ آذر ۹۳ ، ۲۲:۲۳ آرمان از کرج
( -: LIKE
پاسخ:

سلام

خوش اومدی!

:)

۱۴ مرداد ۹۳ ، ۲۳:۵۲ مرتضی شایان
سلام
من که از این مطلب چیزی متوجه نشدم اما یکی از دوستان که پیش من بود و رشته اش هم کامپیوتر بود، انرا مطالعه کرد و نظرش نسبت به ان مثبت بود.
پاسخ:
شما و دوستتون لطف دارین!
خوشحالم!
ممنون!
:)

ارسال نظر

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