درون 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 ممکن است در حین بروز رسانی نرم افزار خود با خطاهایی مواجه شوید، برای مشاهده راه حل ها و مشکلات و خطاها می توانید از طریق لینک زیر اقدام کنید: بررسی مشکلات 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 های شما است، هر خطایی که نمایش داده شود، اطلاعات بیشتری در مورد اشتباهاتی که شما انجام داده اید را ارائه خواهد کرد.   در بخش بعد آموزش نوشتن یک برنامه چت گروهی را بررسی خواهیم کرد. ", "image": "/landingpages/images/blog-image-one.jpg", "author": { "@type": "", "name": "اسماعیل شیدایی", "url": "" }, "publisher": { "@type": "Organization", "name": "شرکت توسعه و مدیریت پارسیان زرین | Ably ابلای", "logo": { "@type": "ImageObject", "url": "https://ably.ir/" } }, "datePublished": "1393/5/25 11:30:09", "dateModified": "" }
دوره  آموزشی SignalR به زبان فارسی

دوره آموزشی 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 قرار دهید:

owinstartup

دستورات 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

ممکن است در حین بروز رسانی نرم افزار خود با خطاهایی مواجه شوید، برای مشاهده راه حل ها و مشکلات و خطاها می توانید از طریق لینک زیر اقدام کنید:

بررسی مشکلات 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 های شما است، هر خطایی که نمایش داده شود، اطلاعات بیشتری در مورد اشتباهاتی که شما انجام داده اید را ارائه خواهد کرد.

 

در بخش بعد آموزش نوشتن یک برنامه چت گروهی را بررسی خواهیم کرد.

نظرات

  • Hannah Martinez
    رحیمی
    دو شنبه 11 دی 1278 - 0:00

    سلام
    ممنون از آموزش های مفیدتون
    آیا از singnalR  می توانیم برای آمار بازدید کنندگان سایت استفاده کنیم ؟

    • Judith Bell
      پاسخ
      اسماعیلشیدایی
      دو شنبه 11 دی 1278 - 0:00

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

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس