دوره آموزشی SignalR به زبان فارسی
بسم الله الرحمن الرحیم
دوره آموزشی SignalR به زبان فارسی
شروع ایجاد پروژه SignalR
بخش پنجم- شروع ایجاد پروژه SignalR
بخش ششم - مروری بر مفاهیم SignalR
بخش هفتم- ایجاد پروژه Chat با SignalR
بخش هشتم - ایجاد پروژه Chat با SignalR در ASP.NET MVC
بخش نهم- ساخت یک Timer سمت سرور با SignalR
بخش دهم - آموزش ساخت یک پروژه SignalR با SQLDepedency در ASP.NET MVC
بروز رسانی نسخه SignalR 1.x به SignalR 2
SignalR 2 پیشنهاد می کند برای داشتن یک تجربه خوب در استفاده از SignalR برای تمامی پلت فرم های سرور از OWIN استفاده کنید. در این مقاله می خواهیم روش های بروز رسانی نرم افزارهای توسعه داده شده با SignalR 1.x را به version 2 بررسی کنیم.
هنگامی که شما نسخه خود را به SignalR 2 بروز کنید، SignalR 1.x همچنان پشتیبانی می شود.
در این آموزش، نحوه بروز رسانی یک نرم افزار web-hosted را در SignalR 2 بررسی خواهیم کرد. نرم افزار های Self-hosted (برنامه هایی که درون یک سرور نقش میزبان را برعهده دارند مانند Console application، Windows Service یا سایر process هایی که ممکن است این کار را انجام دهند) که تحت SignalR 2 پشتیبانی می شوند.
در بخش های بعدی طراحی یک نرم افزار self-host توسط SignalR 2 بررسی خواهد شد.
در انتهای همین مقاله شما راه حلهای موجود برای مشکلاتی که در ارتقاء به SignalR 2 با آن روبرو خواهید شد، را می توانید مطالعه کنید.
مثال :
بروز رسانی یک برنامه به SignalR 2
در این بخش ما یک برنامه که توسط SignalR 1.x توسعه داده شده است را به SignalR 2 بروز رسانی می کنیم.
1- بر روی پروژه خود در Visual Studio کلیک راست کنید و سپس گزینه Properties را انتخاب کنید، حال Target framework برنامه خود را بر روی .NET Framework 4.5 قرار دهید.
2- حال باید تمامی Package های نصب شده توسط SignalR 1.x را از پروژه خود حذف کنیم، در پنجره Package Manager Console دستور زیر را وارد نمایید:
Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
3- پس از حذف Package های نسخه قدیمی، می بایست نسخه SignalR 2 را نصب کنیم، در پنجره Package Manager Console دستور زیر را وارد نمایید:
Install-Package Microsoft.AspNet.SignalR
برای استفاده از SignalR باید اسکریپ مروبطه را به صفحات HTML خود اضافه کنیم، برای اضافه کردن Script نسخه SignalR 2 به صفحات خود کافی است کد زیر را به صفحه خود اضافه کنید (قبل از اضفه کردن این Script می بایست Script نسخه قدیمی را حذف کنید):
<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
درون global application class دستور فراخوانی MapHubs را حذف کنید:
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHubs();
}
روی Solution برنامه کلیک راست کنید و از طریق گزینه Add پنجره New Item... را باز و سپس گزینه Owin Startup Class را انتخاب کنید، نام این کلاس را Startup.cs قرار دهید:
دستورات Startup.cs را با دستورات زیر جایگزین کنید:
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
خاصیت assembly کلاس ما را به (process) پروسس Owin's startup اضافه می کند و باعث می شود هنگامی که Owin starts up اجرا شود دستورات درون متد Configuration نیز فراخوانی شود.
با فراخوانی متد MapSignalR برنامه ما route های مورد نظر برای تمامی hubهای SignalR در نرم افزار ایجاد می کند.
بررسی مشکلات SignalR
ممکن است در حین بروز رسانی نرم افزار خود با خطاهایی مواجه شوید، برای مشاهده راه حل ها و مشکلات و خطاها می توانید از طریق لینک زیر اقدام کنید:
دو مورد از خطاهای اصلی که ممکن است با آن مواجه شوید را بررسی خواهیم کرد:
'The call is ambiguous between the following methods or properties'
این خطا به Microsoft.AspNet.SignalR.Owin اشاره دارد که به درستی حذف نشده است. این package مشکل کرد، reference باید حذف شود و نسخه 1.x از SelfHost package نیز باید حذف شود.
Hub methods fail silently
باید بررسی کنید که نسخه script references در سیستم کلاینت شما نیز بروز شده باشد و همچنین خاصیت OwinStartup در کلاس Startup شما دارای assembly nameهای صحیحی در پروژه شما است.
تلاش کنید آدرس (/signalr/hubs) را درمورگر خود باز کنید این آدرس، آدرس Hub های شما است، هر خطایی که نمایش داده شود، اطلاعات بیشتری در مورد اشتباهاتی که شما انجام داده اید را ارائه خواهد کرد.
در بخش بعد آموزش نوشتن یک برنامه چت گروهی را بررسی خواهیم کرد.
رحیمی
سلام
ممنون از آموزش های مفیدتون
آیا از singnalR می توانیم برای آمار بازدید کنندگان سایت استفاده کنیم ؟
اسماعیلشیدایی
با عرض سلام
ممنون از لطفتان
اگر درست متوجه شده باشم برای نمایش آمار بازدید و بروز رسانی آن به صورت لحظه ای، بله می توانید اما معمولا نیازی به این کار نیست، زیرا کاربران نیازی ندارند لحظه به لحظه آمار بازدید مشاهده کنند، اما اگر یک سیستم خاص برای ارائه گزارش آمار بازدید لحظه ای مد نظر دارید، این روش معمولا روشی است که در بسیاری از سرویس های آمار بازدید مورد استفاده قرار می گیرد.
موفق باشید