التشغيل السريع: إنشاء غرفة دردشة بواسطة ASP.NET وSignalR Service

تعتمد Azure SignalR Service علىSignalR ASP.NET Core 2.1، وهو غير متوافق بنسبة 100٪ مع ASP.NET SignalR. تمت إعادة تطبيق خدمة Azure SignalR ASP.NET بروتوكول بيانات SignalR استنادا إلى أحدث تقنيات ASP.NET Core. عند استخدام Azure SignalR Service ASP.NET SignalR، لم تعد بعض ميزات SignalR ASP.NET مدعومة، على سبيل المثال، لا يعيد Azure SignalR تشغيل الرسائل عند إعادة اتصال العميل. أيضا، نقل Forever Frame وJSONP غير مدعومين. يلزم وجود بعض تغييرات التعليمات البرمجية والنسخة المناسبة من المكتبات التابعة حتى يعمل تطبيق SignalR ASP.NET العمل بواسطة SignalR Service.

راجع مستند اختلافات الإصدار للحصول على قائمة كاملة بمقارنة الميزات بين ASP.NET SignalR وASP.NET Core SignalR.

في هذا التشغيل السريع، ستتعلم كيفية البدء في ASP.NET وخدمة Azure SignalR لتطبيق غرفة محادثة مماثل.

في حال لم يكن لديك اشتراك في Azure، قم بإنشاءحساب مجاني قبل البدء.

المتطلبات الأساسية

هل تواجه مشكلات؟ جرب دليل استكشاف الأخطاء وإصلاحها أو أخبرنا.

تسجيل الدخول إلى Azure

سجل الدخول إلى مدخل Microsoft Azure باستخدام حساب Azure الخاص بك.

هل تواجه مشكلات؟ جرب دليل استكشاف الأخطاء وإصلاحها أو أخبرنا.

في هذا القسم، يمكنك إنشاء مثيل Azure SignalR أساسي لاستخدامه لتطبيقك. تستخدم الخطوات التالية مدخل Microsoft Azure لإنشاء مثيل جديد، ولكن يمكنك أيضا استخدام Azure CLI. لمزيد من المعلومات، راجع الأمر az signalr create في مرجع Azure SignalR Service CLI.

  1. قم بتسجيل الدخول إلى بوابة Azure.
  2. في الجانب العلوي الأيسر من الصفحة، اختر+ إنشاء مورد.
  3. في صفحة إنشاء مورد، في مربع النص خدمة البحث والسوق، أدخل signalr ثم حدد SignalR Service من القائمة.
  4. في صفحة SignalR Service ، حدد Create.
  5. في علامة التبويب Basics ، يمكنك إدخال المعلومات الأساسية لمثيل SignalR Service الجديد. أدخل القيم التالية:
الحقل القيم المقترحة ‏‏الوصف
الاشتراك اختر اشتراكك حدد الاشتراك الذي تريد استخدامه لإنشاء مثيل خدمة SignalR جديد.
مجموعة الموارد إنشاء مجموعة موارد باسم SignalRTestResources يوصى باختيار أو إنشاء مجموعة موارد لموردك SignalR. من المفيد إنشاء مجموعة موارد جديدة لهذا البرنامج التعليمي بدلا من استخدام مجموعة موارد موجودة. لتحرير الموارد بعد إكمال البرنامج التعليمي، احذف مجموعة الموارد.

يؤدي حذف مجموعة موارد أيضا إلى حذف كافة الموارد التي تنتمي إلى المجموعة. لا يمكن التراجع عن هذا الإجراء. قبل حذف مجموعة موارد، تأكد من أنها لا تحتوي على موارد تريد الاحتفاظ بها.

للمزيد من المعلومات، يُرجى الرجوع إلى استخدام مجموعات الموارد لإدارة موارد Azure.
اسم المورد testsignalr أدخل اسم مورد مميزًا لاستخدامه في مورد SignalR. إذا تم أخذ testignalr بالفعل في منطقتك، أضف رقما أو حرفا حتى يكون الاسم فريدا.

يجب أن يكون الاسم سلسلة مكونة من 1 إلى 63 حرفًا وتتضمن الأرقام والحروف ورمز الواصلة فقط -. لا يمكن أن يبدأ الاسم أو ينتهي بحرف الواصلة، وأحرف الواصلة المتتالية غير صالحة.
المنطقة اختيار منطقتك حدد المنطقة المناسبة لمثيل SignalR Service الجديد.

خدمة Azure SignalR غير متوفرة حاليا في جميع المناطق. لمزيد من المعلومات، راجع توفر منطقة خدمة Azure SignalR
مستوى الأسعار حدد تغيير ثم اختر مجاني (التطوير/الاختبار فقط). اختر تحديد لتأكيد اختيارك لمستوى التسعير. تحتوي خدمة Azure SignalR على ثلاثة مستويات تسعير: Free وStandard وPremium. تستخدم البرامج التعليمية المستوى المجاني ، ما لم يتم ملاحظة خلاف ذلك في المتطلبات الأساسية.

لمزيد من المعلومات حول اختلافات الوظائف بين المستويات والتسعير، راجع تسعير خدمة Azure SignalR
وضع الخدمة اختر وضع الخدمة المناسب استخدم الافتراضي عند استضافة منطق مركز SignalR في تطبيقات الويب واستخدام خدمة SignalR كوكيل. استخدم Serverless عند استخدام تقنيات بلا خادم مثل Azure Functions لاستضافة منطق مركز SignalR.

الوضع الكلاسيكي هو فقط للتوافق مع الإصدارات السابقة ولا يوصى باستخدامه.

لمزيد من المعلومات، راجع وضع الخدمة في خدمة Azure SignalR.

لا تحتاج إلى تغيير الإعدادات في علامات التبويب الشبكات والعلامات لبرامج SignalR التعليمية.

  1. حدد الزر Review + create أسفل علامة التبويب Basics .
  2. في علامة التبويب Review + create ، راجع القيم ثم حدد Create. يستغرق الأمر بضع لحظات حتى يكتمل النشر.
  3. عند اكتمال النشر، حدد الزر Go to resource .
  4. في صفحة مورد SignalR، حدد Keys من القائمة على اليسار، ضمن الإعدادات.
  5. انسخ سلسلة الاتصال ion للمفتاح الأساسي. تحتاج إلى هذا سلسلة الاتصال لتكوين تطبيقك لاحقا في هذا البرنامج التعليمي.

الوضع بلا خادم غير مدعوم لتطبيقات SignalR ASP.NET. استخدم الوضعالافتراضي أو الكلاسيكي لمثيل Azure SignalR Service.

يمكنك أيضاً إنشاء موارد Azure المستخدمة في هذا التشغيل السريع باستخدام "Create a SignalR Service script".

هل تواجه مشكلات؟ جرب دليل استكشاف الأخطاء وإصلاحها أو أخبرنا.

استنساخ نموذج التطبيق

أثناء نشر الخدمة، دعنا ننتقل للعمل من خلال التعليمات البرمجية. استنسخ نموذج تطبيق من GitHub، تعيين سلسلة اتصال خدمة SignalR، وتشغيل التطبيق محلياً.

  1. افتح نافذة طرفية لـ git. انتقل إلى مجلد حيث تريد استنساخ نموذج المشروع.

  2. قم بتشغيل الأمر التالي لاستنساخ مستودع النموذج. يقوم هذا الأمر بإنشاء نسخة من نموذج التطبيق على جهاز الكمبيوتر الخاص بك.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

هل تواجه مشكلات؟ جرب دليل استكشاف الأخطاء وإصلاحها أو أخبرنا.

تكوين تطبيق ويب لغرفة دردشة وتشغيله

  1. بدء Visual Studio وفتح الحل في مجلدaspnet-samples/ChatRoom/ الخاص بالمستودع المستنسخ.

  2. في المستعرض الذي يُفتح فيه مدخل Microsoft Azure، ابحث عن المثيل الذي أنشأته وحدده.

  3. حدد "Keys" لعرض سلاسل الاتصال لمثيل SignalR Service.

  4. حدد سلسلة الاتصال الأساسية وانسخها.

  5. الآن قم بتعيين سلسلة الاتصال في ملف web.config.

    <configuration>
    <connectionStrings>
        <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/>
    </connectionStrings>
    ...
    </configuration>
    
  6. في "Startup.cs"، بدلاً من الاستدعاءMapSignalR()، تحتاج إلى الاستدعاء والتمرير في سلسلة اتصال لإيصال تطبيق الاتصال MapAzureSignalR({YourApplicationName}) بالخدمة بدلاً من استضافة SignalR بنفسه. استبدل {YourApplicationName} اسم التطبيق. يُعد هذا الاسم مميز لتمييز هذا التطبيق عن التطبيقات الأخرى. يمكنك استخدام this.GetType().FullName كقيمة.

    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        app.MapAzureSignalR(this.GetType().FullName);
    }
    

    تحتاج أيضاً إلى مرجع خدمة SDK قبل استخدام واجهات برمجة التطبيقات هذه. فتح "Tools | NuGet Package Manager | Package Manager Console" وشغل الأمر:

    Install-Package Microsoft.Azure.SignalR.AspNet
    

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

    إشعار

    في التطبيق يتم كشف نقطة نهاية /signalr/negotiate للتفاوض بواسطة Azure SignalR Service SDK. يتم إرجاع استجابة تفاوض خاصة عند محاولة العملاء الاتصال وإعادة توجيه العملاء إلى نقطة النهاية الخدمة المعرفة في سلسلة الاتصال.

  7. اضغط على "F5" لتشغيل المشروع في وضع التصحيح. يمكنك مشاهدة التطبيق يعمل محلياً. بدلاً من استضافة وقت تشغيل SignalR بواسطة التطبيق نفسه، فإنه يتصل الآن بـ Azure SignalR Service.

هل تواجه مشكلات؟ جرب دليل استكشاف الأخطاء وإصلاحها أو أخبرنا.

تنظيف الموارد

إذا لم تكن تنوي متابعة استخدام هذا التطبيق، فاحذف كافة الموارد التي تم إنشاؤها بواسطة هذا التشغيل السريع باستخدام الخطوات التالية حتى لا تتحمل أي رسوم:

  1. من القائمة اليسرى في مدخل Azure، حدد مجموعات الموارد ثم حدد مجموعة الموارد التي أنشأتها. بدلاً من ذلك، يمكنك استخدام مربع البحث للبحث عن مجموعة الموارد باسمها.

  2. في النافذة التي ستفتح، حدد مجموعة الموارد، ثم انقر فوق حذف مجموعة الموارد.

  3. في النافذة الجديد، اكتب اسم مجموعة الموارد المراد حذفها، ثم انقر فوق حذف.

هام

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

سجل الدخول إلىمدخل Azureوحددمجموعات الموارد.

في المربع تصفية حسب الاسم...، اكتب اسم مجموعة الموارد. استخدمت إرشادات هذه المقالة مجموعة موارد تسمى SignalRTestResources. في مجموعة الموارد في قائمة النتائج، انقر على ... ثم "Delete resource group".

Delete

بعد لحظات قليلة، يتم حذف مجموعة الموارد وكافة الموارد المضمنة.

هل تواجه مشكلات؟ جرب دليل استكشاف الأخطاء وإصلاحها أو أخبرنا.

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

في هذا التشغيل السريع، أنشأت مورداً جديداً لـAzure SignalR Service واستخدمته بواسطة تطبيق ويب ASP.NET. أيضاً، تعرف على كيفية تطوير التطبيقات في الوقت الفعلي باستخدامAzure SignalR Service بواسطة ASP.NET Core.