نقاط النهاية الأولية
تسمح ميزة نقاط النهاية المصدر لخدمة 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:
إضافة هوية معينة من قبل النظام أو هوية معينة من قبل المستخدم. راجع كيفية إضافة هوية مدارة في مدخل Microsoft Azure.
منح إذن قراءة سري للهوية المدارة في نهج الوصول في Key Vault. راجع تعيين نهج الوصول إلى Key Vault باستخدام مدخل Microsoft Azure
استبدل النص الحساس ببناء الجملة أدناه في نمط عنوان 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 غير مدعوم حاليا.
- انتقل إلى Azure SignalR Service.
- حدد الإعدادات.
- تبديل وضع الخدمة إلى بلا خادم.
- إضافة عناوين URL ضمن نمط عنوان URL المصدر.
- حدد Hub Rules لفتح إعدادات المصدر.
- قم بتغيير قواعد المركز وقواعد الأحداث وقواعد الفئة عن طريق إدخال قيمة القاعدة في الحقل المقابل.
- ضمن مصادقة المصدر حدد
- استخدام الهوية المدارة. (تأكد من تمكين الهوية المدارة)
- اختر أي خيارات ضمن الجماعة المستهدفة في الرمز المميز الصادر. راجع الهويات المدارة لخدمة 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
عنوان الطلب
Name | الوصف |
---|---|
X-ASRS-Connection-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
Name | كتابة | الوصف |
---|---|---|
خطأ | سلسلة | رسالة الخطأ الخاصة باتصال مغلق. فارغ عند إغلاق الاتصالات دون حدوث خطأ. |
رسالة استدعاء
نوع المحتوى: application/json
أو application/x-msgpack
Name | كتابة | الوصف |
---|---|---|
معرف استدعاء | سلسلة | سلسلة اختيارية تمثل رسالة استدعاء. ابحث عن التفاصيل في استدعاءات. |
استهداف | سلسلة | نفس الحدث ونفس الهدف في رسالة استدعاء. |
الوسيطات | صفيف الكائن | صفيف يحتوي على وسيطات لتطبيقها على الأسلوب المشار إليه في Target . |
التوقيع
ستقوم الخدمة بحساب التعليمات البرمجية SHA256 للقيمة X-ASRS-Connection-Id
باستخدام كل من مفتاح الوصول الأساسي ومفتاح الوصول الثانوي كمفتاح HMAC
. ستقوم الخدمة بتعيينه في X-ASRS-Signature
العنوان عند إجراء طلبات HTTP إلى نقطة نهاية المصدر:
Hex_encoded(HMAC_SHA256(accessKey, connection-id))