نقاط النهاية الأولية

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

إشعار

يمكن تكوين نقاط النهاية الأولية فقط في وضع بلا خادم.

إعدادات نقطة النهاية الأولية

تتكون إعدادات نقطة النهاية الأولية من قائمة بالعناصر الحساسة للطلب:

  • قالب URL، الذي يحدد مكان إرسال الرسائل إليه.
  • مجموعة من القواعد.
  • تكوينات المصادقة.

عند تشغيل حدث، يتم التحقق من قواعد العنصر واحدا تلو الآخر بالترتيب. سيتم إرسال الرسائل إلى عنوان URL لنقطة النهاية الأولية للعنصر المطابق الأول.

إعدادات قالب URL

يمكنك تحديد معلمات عنوان URL لنقطة النهاية المصدر لدعم أنماط مختلفة. هناك ثلاث معلمات معرفة مسبقا:

معلمة معرفة مسبقا ‏‏الوصف
{hub} المركز هو مفهوم Azure SignalR Service. المركز هو وحدة عزل. نطاق المستخدمين وتسليم الرسائل مقيد بمركز.
{category} يمكن أن تكون الفئة إحدى القيم التالية:
  • الاتصالات: أحداث عمر الاتصال. يتم تشغيله عندما يكون اتصال العميل متصلا أو غير متصل. يتضمن الأحداث المتصلة وغير المتصلة.
  • الرسائل: يتم تشغيلها عند استدعاء العملاء لأسلوب المركز. يتضمن جميع الأحداث الأخرى، باستثناء الأحداث في فئة الاتصالات .
{event} بالنسبة لفئة الرسائل، يكون الحدث هو الهدف في رسالة استدعاء يرسلها العملاء. بالنسبة لفئة الاتصالات، يتم استخدام الاتصال وقطع الاتصال فقط.

يمكن استخدام هذه المعلمات المعرفة مسبقا في نمط URL. سيتم استبدال المعلمات بقيمة محددة عند تقييم عنوان URL لنقطة النهاية الأولية. على سبيل المثال:

http://host.com/{hub}/api/{category}/{event}

عند توصيل اتصال عميل في مركز "الدردشة"، سيتم إرسال رسالة إلى عنوان URL هذا:

http://host.com/chat/api/connections/connected

عندما يستدعي عميل في مركز "الدردشة" أسلوب broadcastالمركز ، سيتم إرسال رسالة إلى عنوان URL هذا:

http://host.com/chat/api/messages/broadcast

مرجع البيانات السرية ل Key Vault في إعدادات قالب URL

عنوان URL لنقطة النهاية الأولية غير مشفر. يمكنك تأمين نقاط النهاية الحساسة المصدر باستخدام Key Vault والوصول إليها بهوية مدارة.

لتمكين الهوية المدارة في مثيل خدمة SignalR ومنحها حق الوصول إلى Key Vault:

  1. إضافة هوية معينة من قبل النظام أو هوية معينة من قبل المستخدم. راجع كيفية إضافة هوية مدارة في مدخل Microsoft Azure.

  2. منح إذن قراءة سري للهوية المدارة في نهج الوصول في Key Vault. راجع تعيين نهج الوصول إلى Key Vault باستخدام مدخل Microsoft Azure

  3. استبدل النص الحساس ببناء الجملة أدناه في نمط عنوان URL لنقطة النهاية الأولية:

    {@Microsoft.KeyVault(SecretUri=<secret-identity>)}
    

    <secret-identity> هو URI لمستوى البيانات الكامل للبيانات السرية في Key Vault، بما في ذلك اختياريا إصدارا، على سبيل المثال، https://myvault.vault.azure.net/secrets/mysecret/ أو https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

    على سبيل المثال، قد يبدو المرجع الكامل كما يلي:

    {@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

    سيبدو عنوان URL لنقطة النهاية الأولية إلى Azure Function كما يلي:

    https://contoso.azurewebsites.net/runtime/webhooks/signalr?code={@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

إشعار

كل 30 دقيقة، أو كلما تغيرت إعدادات نقطة النهاية الأولية أو الهوية المدارة، تعيد الخدمة قراءة المحتوى السري. يمكنك تشغيل تحديث على الفور عن طريق تغيير إعدادات نقطة النهاية الأولية.

إعدادات القاعدة

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

  • استخدم علامة نجمية (*) لمطابقة أي حدث.
  • استخدم فاصلة (،) للانضمام إلى أحداث متعددة. على سبيل المثال، connected, disconnected يطابق الأحداث المتصلة وغير المتصلة.
  • استخدم اسم الحدث الكامل لمطابقة الحدث. على سبيل المثال، connected يطابق الحدث المتصل.

إشعار

إذا كنت تستخدم Azure Functions مع مشغل SignalR، فسيعرض مشغل SignalR نقطة نهاية واحدة بالتنسيق التالي: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>. يمكنك فقط تكوين إعدادات قالب URL إلى عنوان URL هذا والاحتفاظ بإعدادات القاعدة افتراضية . راجع تكامل SignalR Service للحصول على تفاصيل حول كيفية العثور على <Function_App_URL> و <API_KEY>.

إعدادات المصادقة

يمكنك تكوين المصادقة لكل إعداد نقطة نهاية منبع بشكل منفصل. عند تكوين المصادقة، يتم تعيين رمز مميز في Authentication رأس الرسالة المصدر. حاليا، تدعم خدمة Azure SignalR أنواع المصادقة التالية:

  • None
  • ManagedIdentity

عند تحديد ManagedIdentity، يجب أولا تمكين هوية مدارة في Azure SignalR Service واختياريا، حدد موردا. راجع الهويات المدارة لخدمة Azure SignalR للحصول على التفاصيل.

تكوين إعدادات نقطة النهاية الأولية عبر مدخل Microsoft Azure

إشعار

التكامل مع App Service Environment غير مدعوم حاليا.

  1. انتقل إلى Azure SignalR Service.
  2. حدد الإعدادات.
  3. تبديل وضع الخدمة إلى بلا خادم.
  4. إضافة عناوين URL ضمن نمط عنوان URL المصدر. Screenshot of AzureSignalR Service Upstream settings.
  5. حدد Hub Rules لفتح الإعدادات المصدر. Screenshot of Azure SignalR Upstream setting details.
  6. قم بتغيير قواعد المركز وقواعدالأحداث وقواعد الفئة عن طريق إدخال قيمة القاعدة في الحقل المقابل.
  7. ضمن مصادقة المصدر حدد
  8. استخدام الهوية المدارة. (تأكد من تمكين الهوية المدارة)
  9. اختر أي خيارات ضمن الجماعة المستهدفة في الرمز المميز الصادر. راجع الهويات المدارة لخدمة Azure SignalR للحصول على التفاصيل.

تكوين إعدادات نقطة النهاية الأولية عبر قالب Resource Manager

لتكوين إعدادات نقطة النهاية المصدر باستخدام قالب Azure Resource Manager، قم بتعيين الخاصية upstream في الخاصية properties . توضح القصاصة البرمجية التالية كيفية تعيين الخاصية upstream لإنشاء إعدادات نقطة النهاية المصدر وتحديثها.

{
  "properties": {
    "upstream": {
      "templates": [
        {
          "UrlTemplate": "http://host.com/{hub}/api/{category}/{event}",
          "EventPattern": "*",
          "HubPattern": "*",
          "CategoryPattern": "*",
          "Auth": {
            "Type": "ManagedIdentity",
            "ManagedIdentity": {
              "Resource": "<resource>"
            }
          }
        }
      ]
    }
  }
}

بروتوكولات بلا خادم

ترسل خدمة Azure SignalR رسائل إلى نقاط النهاية التي تتبع البروتوكولات التالية. يمكنك استخدام ربط مشغل SignalR Service مع Function App، الذي يعالج هذه البروتوكولات نيابة عنك.

الطريقة

POST

عنوان الطلب

الاسم ‏‏الوصف
X-ASRS-الاتصال ion-Id معرف الاتصال لاتصال العميل.
X-ASRS-Hub لوحة الوصل التي ينتمي إليها اتصال العميل.
X-ASRS-Category الفئة التي تنتمي إليها الرسالة.
X-ASRS-Event الحدث الذي تنتمي إليه الرسالة.
X-ASRS-Signature رمز مصادقة رسالة مستند إلى التجزئة (HMAC) يستخدم للتحقق من الصحة. راجع التوقيع للحصول على التفاصيل.
X-ASRS-User-Claims مجموعة من مطالبات اتصال العميل.
X-ASRS-User-Id هوية المستخدم للعميل الذي يرسل الرسالة.
X-ASRS-Client-Query الاستعلام عن الطلب عند اتصال العملاء بالخدمة.
المصادقة رمز مميز اختياري عند استخدام ManagedIdentity.

نص الطلب

Connected

نوع المحتوى: application/json

غير متصل

نوع المحتوى: application/json

الاسم النوع ‏‏الوصف
خطأ سلسلة رسالة الخطأ الخاصة باتصال مغلق. فارغ عند إغلاق الاتصالات دون حدوث خطأ.

رسالة استدعاء

نوع المحتوى: application/json أو application/x-msgpack

الاسم النوع ‏‏الوصف
معرف استدعاء سلسلة سلسلة اختيارية تمثل رسالة استدعاء. ابحث عن التفاصيل في استدعاءات.
استهداف سلسلة نفس الحدث ونفس الهدف في رسالة استدعاء.
الوسيطات صفيف الكائن صفيف يحتوي على وسيطات لتطبيقها على الأسلوب المشار إليه في Target.

التوقيع

ستقوم الخدمة بحساب التعليمات البرمجية SHA256 للقيمة X-ASRS-Connection-Id باستخدام كل من مفتاح الوصول الأساسي ومفتاح الوصول الثانوي كمفتاح HMAC . ستقوم الخدمة بتعيينه في X-ASRS-Signature العنوان عند إجراء طلبات HTTP إلى نقطة نهاية المصدر:

Hex_encoded(HMAC_SHA256(accessKey, connection-id))

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