معالج الأحداث في خدمة Azure Web PubSub

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

تقدم خدمة Web PubSub أحداث العميل إلى خطاف الويب المصدر باستخدام بروتوكول CloudEvents HTTP.

لكل حدث، تقوم الخدمة بصياغة طلب HTTP POST إلى نقطة النهاية المصدر المسجلة وتتوقع استجابة HTTP.

دائما ما تكون البيانات المرسلة من الخدمة إلى الخادم بتنسيق CloudEvents binary .

Screenshot of Web PubSub service event trigger.

المصدر والتحقق من الصحة

عند تكوين نقطة نهاية إخطار على الويب، يمكن أن يتضمن عنوان URL المعلمة {event} لتعريف قالب URL. تحسب الخدمة قيمة عنوان URL لخطاف الويب ديناميكيا عند ورود طلب العميل. على سبيل المثال، عندما يأتي طلب /client/hubs/chat ، مع نمط http://host.com/api/{event} URL لمعالج الأحداث المكون للمركز chat، عندما يتصل العميل، فإنه سيتم أولا POST إلى عنوان URL هذا: http://host.com/api/connect. {event} يمكن أن تكون المعلمة مفيدة عندما يرسل عميل PubSub WebSocket أحداثا مخصصة، حيث يساعد معالج الأحداث في إرسال أحداث مختلفة إلى نقاط نهاية المصدر المختلفة. {event} المعلمة غير مسموح بها في اسم مجال URL.

عند إعداد خطاف الويب لمعالج الأحداث من خلال مدخل Microsoft Azure أو CLI، تتبع الخدمة CloudEvents Abuse Protection للتحقق من صحة خطاف الويب المصدر. سيتم التحقق من صحة كل عنوان URL مسجل للإخطار على الويب من خلال هذه الآلية. WebHook-Request-Origin يتم تعيين عنوان الطلب إلى اسم xxx.webpubsub.azure.comمجال الخدمة ، ويتوقع أن تحتوي الاستجابة على عنوان WebHook-Allowed-Origin يحتوي على اسم المجال هذا أو *.

عند إجراء التحقق من الصحة، يتم حل المعلمة {event} إلى validate. على سبيل المثال، عند محاولة تعيين عنوان URL إلى http://host.com/api/{event}، ستحاول الخدمة خيارات طلب إلى http://host.com/api/validate. وفقط عندما تكون الاستجابة صالحة، يمكن تعيين التكوين بنجاح.

في الوقت الحالي، لا ندعم WebHook-Request-Rate وWebHook-Request-Callback.

المصادقة بين الخدمة والإخطار على الويب

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

  • الوضع المجهول
  • يتم توفير مصادقة بسيطة مع ?code=<code> من خلال عنوان URL Webhook المكون كمعلمة استعلام.
  • تخويل Microsoft Entra. لمزيد من المعلومات، راجع استخدام هوية مدارة في أحداث العميل.

قم بتكوين معالج الأحداث

التكوين من خلال مدخل Microsoft Azure

يمكنك إضافة معالج أحداث إلى مركز جديد أو تحرير مركز موجود.

لتكوين معالج أحداث في مركز جديد:

  1. انتقل إلى صفحة خدمة Azure Web PubSub في مدخل Microsoft Azure.

  2. حدد الإعدادات من القائمة.

  3. حدد Add لإنشاء مركز وتكوين عنوان URL لخطاف الويب من جانب الخادم. ملاحظة: لإضافة معالج أحداث إلى مركز موجود، حدد المركز وحدد تحرير.

    Screenshot of setting the event handler.

  4. أدخل اسم المركز الخاص بك.

  5. حدد Add ضمن Configure Even Handlers.

  6. في صفحة معالج الأحداث، قم بتكوين الحقول التالية: 1. أدخل عنوان URL للإخطار على الويب للخادم في حقل قالب URL. 1. حدد أحداث النظام التي تريد الاشتراك فيها. 1. حدد أحداث المستخدم التي تريد الاشتراك فيها. 1. حدد Authentication method لمصادقة طلبات المصدر. 1. حدد تأكيد. Screenshot of Azure Web PubSub Configure Event Handler.

  7. حدد Save في أعلى صفحة Configure Hub الإعدادات.

    Screenshot of Azure Web PubSub Configure Hub Settings.

التكوين من خلال Azure CLI

استخدم أوامر مجموعة مركز Azure CLI az webpubsub لتكوين إعدادات معالج الأحداث.

الأوامر ‏‏الوصف
create إنشاء إعدادات المركز لخدمة WebPubSub.
delete حذف إعدادات المركز لخدمة WebPubSub.
list سرد كافة إعدادات المركز لخدمة WebPubSub.
show إظهار إعدادات المركز لخدمة WebPubSub.
update تحديث إعدادات المركز لخدمة WebPubSub.

فيما يلي مثال على إنشاء عنواني URL لخطاف الويب لمركز MyHubMyWebPubSub المورد:

az webpubsub hub create -n "MyWebPubSub" -g "MyResourceGroup" --hub-name "MyHub" --event-handler url-template="http://host.com" user-event-pattern="*" --event-handler url-template="http://host2.com" system-event="connected" system-event="disconnected" auth-type="ManagedIdentity" auth-resource="uri://myUri"

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

استخدم هذه الموارد لبدء إنشاء التطبيق الخاص بك: