التشغيل السريع: بث الرسائل في الوقت الحقيقي من تطبيق وحدة التحكم

توفر خدمة Azure SignalR واجهة برمجة تطبيقات REST لدعم سيناريوهات الاتصال من خادم إلى عميل مثل البث. يمكنك اختيار أي لغة برمجة يمكنها إجراء استدعاءات REST API. يمكنك نشر الرسائل إلى جميع العملاء المتصلين أو عميل معين بالاسم أو مجموعة من العملاء.

في هذا التشغيل السريع، ستتعلم كيفية إرسال الرسائل من تطبيق سطر الأوامر إلى تطبيقات العميل المتصلة في C#‎.

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

يمكن تشغيل هذه التشغيل السريع على macOS أو Windows أو Linux.

  • .NET Core SDK
  • محرر نصوص أو محرر التعليمات البرمجية من اختيارك.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب 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 للمفتاح الأساسي. تحتاج إلى هذا سلسلة الاتصال لتكوين تطبيقك لاحقا في هذا البرنامج التعليمي.

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

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

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

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

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

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

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

إنشاء النموذج وتشغيله

يُعد هذا النموذج تطبيق وحدة تحكم يعرض استخدام خدمة Azure SignalR. ويوفر وضعين:

  • وضع الخادم: استخدام أوامر بسيطة لاستدعاء واجهة برمجة تطبيقاتAzure SignalR Service REST.
  • وضع العميل: الاتصال بخدمة SignalR Azure وتلقي الرسائل من الخادم.

يمكنك أيضا معرفة كيفية إنشاء رمز مميز للوصول للمصادقة باستخدام Azure SignalR Service.

إنشاء الملف القابل للتنفيذ

نستخدم نظام التشغيل macOS osx.10.13-x64 كمثال. يمكنك العثور على مرجع حول كيفية الإنشاء على منصات أخرى.

cd AzureSignalR-samples/samples/Serverless/

dotnet publish -c Release -r osx.10.13-x64

بدء عميل

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>

بدء خادم

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless server -c "<ConnectionString>" -h <HubName>

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

تشغيل العينة دون النشر

يمكنك أيضا تشغيل الأمر التالي لبدء تشغيل خادم أو عميل

# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>

# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>

استخدم أسرار المستخدم لتحديد سلسلة الاتصال

يمكنك تشغيل dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" في نموذج جذر المشروع. بعد ذلك، لا تحتاج إلى الخيار -c "<ConnectionString>" مجدداً.

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

الاستخدام

بعد بدء تشغيل الخادم، استخدم الأمر لإرسال رسالة:

send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast

يمكنك بدء تشغيل عملاء متعددة مع أسماء عملاء مختلفة.

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

التكامل مع غير خدمات Microsoft

تسمح خدمة Azure SignalR لغير خدمات Microsoft بالتكامل مع النظام.

تعريف المواصفات الفنية

يعرض الجدول التالي جميع إصدارات واجهات برمجة التطبيقات REST المعتمدة حتى الآن. يمكنك أيضاً إيجاد ملف التعريف لكل إصدار محدد

‏‏الإصدار حالة واجهة برمجة التطبيقات الباب محدد
1.0-preview متاح 5002 غرور
1.0 متاح قياسي غرور

تتوفر قائمة واجهات برمجة التطبيقات المتوفرة لكل إصدار محدد في القائمة التالية.

واجهة برمجة التطبيقات 1.0-المعاينة 1.0
البث للجميع
البث لمجموعة
البث لبعض المجموعات ✓ (مهمل) N / A
إرسال إلى مستخدم
إرسال إلى بعض المستخدمين ✓ (مهمل) N / A
إضافة مستخدم إلى مجموعة N / A
حذف مستخدم من مجموعة N / A
التحقق من وجود المستخدم N / A
حذف مستخدم من جميع المجموعات N / A
إرسال إلى اتصال N / A
إضافة اتصال إلى مجموعة N / A
حذف اتصال من مجموعة N / A
إغلاق اتصال العميل N / A
حالة الخدمة N / A

البث للجميع

‏‏الإصدار أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب نص الطلب
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> {"target": "<method-name>", "arguments": [...]}

البث لمجموعة

‏‏الإصدار أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب نص الطلب
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> {"target": "<method-name>", "arguments": [...]}

إرسال إلى مستخدم

‏‏الإصدار أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب نص الطلب
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> {"target": "<method-name>", "arguments": [...]}

إضافة مستخدم إلى مجموعة

‏‏الإصدار أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

حذف مستخدم من مجموعة

‏‏الإصدار أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

التحقق من وجود مستخدم في مجموعة

إصدار API أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name>
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>
رمز حالة الاستجابة ‏‏الوصف
200 مستخدم موجود
404 مستخدم غير موجود

حذف مستخدم من جميع المجموعات

إصدار API أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups

إرسال رسالة إلى اتصال

إصدار API أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب نص الطلب
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> { "target":"<method-name>", "arguments":[ ... ] }

إضافة اتصال إلى مجموعة

إصدار API أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

حذف اتصال من مجموعة

إصدار API أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

إغلاق اتصال العميل

إصدار API أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason>

سلامة الخدمة

إصدار API أسلوب "HTTP" لواجهة برمجة تطبيقات عنوان URL الخاص بالطلب
1.0 GET https://<instance-name>.service.signalr.net/api/v1/health
رمز حالة الاستجابة ‏‏الوصف
200 الخدمة جيدة
5xx خطأ في الخدمة

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

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

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

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

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

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

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

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

في هذا التشغيل السريع، تعلمت كيفية استخدام واجهة برمجة تطبيقات REST لبث رسالة في الوقت الحقيقي من SignalR Service للعملاء. أيضاً، تعرف على المزيد حول كيفية تطوير دالات Azure ونشرها باستخدام ربط SignalR Service الذي تم إنشاؤه على قمة واجهة برمجة تطبيقات REST.