توسيع نطاق تطبيقات SignalR الأساسية ASP.NET خلال خدمة Azure SignalR

تطوير تطبيقات SignalR

حاليا ، هناك إصداران من SignalR يمكنك استخدامهما مع تطبيقات الويب الخاصة بك: SignalR ASP.NET ، و ASP.NET Core SignalR ، وهو أحدث إصدار. خدمة Azure SignalR هي خدمة مدارة بواسطة Azure مبنية على ASP.NET Core SignalR.

ASP.NET Core SignalR هو إعادة كتابة للإصدار السابق. ونتيجة لذلك، فإن ASP.NET Core SignalR غير متوافق مع الإصدارات السابقة من SignalR. تختلف واجهات برمجة التطبيقات والسلوكيات. تستهدف ASP.NET Core SignalR SDK .NET Standard حتى تتمكن من استخدامه مع .NET Framework. ومع ذلك، يجب عليك استخدام واجهات برمجة التطبيقات الجديدة بدلا من واجهات برمجة التطبيقات القديمة. إذا كنت تستخدم SignalR وتريد الانتقال إلى ASP.NET Core SignalR أو Azure SignalR Service، فستحتاج إلى تغيير التعليمات البرمجية للتعامل مع الاختلافات في واجهات برمجة التطبيقات.

باستخدام Azure SignalR Service، تتم استضافة المكون من جانب الخادم ASP.NET Core SignalR في Azure. ومع ذلك ، نظرا لأن التكنولوجيا مبنية على ASP.NET Core ، فلديك القدرة على تشغيل تطبيق الويب الفعلي الخاص بك على منصات متعددة (Windows و Linux و MacOS) أثناء الاستضافة باستخدام Azure App Service و IIS و Nginx و Apache و Docker. يمكنك أيضا استخدام الاستضافة الذاتية في العملية الخاصة بك.

إذا كانت أهداف تطبيقك تشمل: دعم أحدث الوظائف لتحديث عملاء الويب بتحديثات المحتوى في الوقت الفعلي، وتشغيلها عبر منصات متعددة (Azure Windows وLinux وmacOS)، والاستضافة في بيئات مختلفة، فقد يكون الخيار الأفضل هو الاستفادة من خدمة Azure SignalR.

لماذا لا تنشر SignalR بنفسي؟

لا يزال من الأساليب الصالحة نشر تطبيق الويب Azure الخاص بك الذي يدعم ASP.NET Core SignalR كمكون خلفي لتطبيق الويب العام الخاص بك.

أحد الأسباب الرئيسية لاستخدام خدمة Azure SignalR هو البساطة. باستخدام خدمة Azure SignalR، لن تحتاج إلى التعامل مع مشكلات مثل الأداء وقابلية التوسع والتوافر. يتم التعامل مع هذه المشكلات نيابة عنك من خلال اتفاقية مستوى الخدمة بنسبة 99.9٪.

أيضا ، WebSockets هي عادة التقنية المفضلة لدعم تحديثات المحتوى في الوقت الفعلي. ومع ذلك ، يصبح تحميل موازنة عدد كبير من اتصالات WebSocket المستمرة مشكلة معقدة لحلها أثناء التوسع. الاستفادة من الحلول الشائعة: موازنة تحميل DNS وموازنات تحميل الأجهزة وموازنة تحميل البرامج. تعالج خدمة Azure SignalR هذه المشكلة نيابة عنك.

قد يكون هناك سبب آخر هو أنه ليس لديك متطلبات لاستضافة تطبيق ويب على الإطلاق. قد يستفيد منطق تطبيق الويب الخاص بك من الحوسبة بدون خادم. على سبيل المثال، ربما تتم استضافة التعليمات البرمجية الخاصة بك وتنفيذها فقط عند الطلب باستخدام مشغلات Azure Functions . قد يكون هذا السيناريو صعبا لأن التعليمات البرمجية الخاصة بك تعمل فقط عند الطلب ولا تحافظ على اتصالات طويلة مع العملاء. يمكن لخدمة Azure SignalR التعامل مع هذا الموقف نظرا لأن الخدمة تدير الاتصالات بالفعل نيابة عنك. راجع نظرة عامة حول كيفية استخدام خدمة SignalR مع وظائف Azure لمزيد من التفاصيل.

كيف يتم قياسه؟

من الشائع توسيع نطاق SignalR باستخدام SQL Server أو ناقل خدمة Azure أو Azure Cache ل Redis. تتعامل Azure SignalR Service مع نهج القياس نيابة عنك. ويمكن مقارنة الأداء والتكلفة بهذه النهج دون تعقيد التعامل مع هذه الخدمات الأخرى. كل ما عليك فعله هو تحديث عدد الوحدات لخدمتك. تدعم كل وحدة ما يصل إلى 1000 اتصال عميل.

الخطوات التالية