مشاركة عبر


ملحق CloudEvents لمستمع حدث Azure Web PubSub مع بروتوكول AMQP

تصف خدمة Azure Web PubSub أحداث العميل على أنها CloudEvents. CloudEvents هي مواصفات لوصف بيانات الحدث بتنسيقات مشتركة لتوفير إمكانية التشغيل المتداخل عبر الخدمات والأنظمة الأساسية والأنظمة.

يستمع مستمعو الأحداث للخدمة إلى أحداث العميل. مراكز الأحداث هي حاليا نقطة نهاية مستمع الأحداث المدعومة الوحيدة، والتي يكون بروتوكولها الأساسي AMQP (بروتوكول وضع الرسائل المتقدمة في قائمة الانتظار). تستخدم خدمة Web PubSub ربط بروتوكول CloudEvents AMQP لتعيين CloudEvents إلى رسائل AMQP.

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

ملحق سمة Web PubSub CloudEvents

يحدد هذا الملحق السمات المستخدمة من قبل Web PubSub لكل حدث ينتجه.

يحتوي الجدول التالي على سمات تعيين إلى قسم الخصائص القياسية لرسالة AMQP.

الاسم الوصف مثال
content-type نوع RFC-2046 MIME لنص الرسالة تطبيق/json
message-id تعريف رسالة بشكل فريد في خدمة Web PubSub، بتنسيق "{connection-id}/{عدد صحيح تم إنشاؤه بواسطة الخدمة}" 0bd83792-2a0c-48d3-9fbd-df63aa2ed9db/1

يحتوي الجدول التالي على كافة سمات CloudEvents التي تم تعيينها إلى قسم خصائص التطبيق في رسالة AMQP. كل اسم سمة مسبوق ب cloudEvents:.

الاسم الوصف مثال
specversion إصدار مواصفات أحداث السحابة، هو دائما 1.0 1.0
source يشير إلى المركز ومعرف الاتصال من حيث يأتي الحدث، بالتنسيق "/hubs/{hub}/client/{connectionId}" /hubs/chat/client/0bd83792-2a0c-48d3-9fbd-df63aa2ed9db
id عدد صحيح تم إنشاؤه بواسطة الخدمة، فريد في الأحداث من نفس اتصال العميل 1
awpsversion أحداث السحابة إصدار مواصفات Azure Web PubSub، هو دائما 1.0 1.0
hub اسم المركز الذي يأتي منه الحدث الدردشه
eventname اسم الحدث متصلا
type نوع الحدث azure.webpubsub.sys.connect
connectionid معرف اتصال العميل 0bd83792-2a0c-48d3-9fbd-df63aa2ed9db
time الوقت الذي ترسل فيه الخدمة الحدث، بالتنسيق "yyyy-MM-ddTHH:mm:ssZ" 2021-01-01T00:00:00Z
userid* معرف المستخدم user1
subprotocol* اسم البروتوكول الفرعي json.webpubsub.azure.v1
connectionstate* تعريف حالة الاتصال. يمكنك إعادة تعيين القيمة في رأس الاستجابة لمعالجات الأحداث. لمزيد من المعلومات حول حالة الاتصال، راجع سمات Web PubSub CloudEvents. anystring

يشير "*" الذي يتبع اسم السمة إلى أن السمة موجودة فقط عندما لا تكون القيمة خالية أو فارغة.

الأحداث

يعرض هذا القسم نص رسالة AMQP مع قيم السمة التي تعتمد على نوع حدث عميل معين. يتم حذف قيم السمات التي لا تعتمد على نوع حدث العميل.

حدث النظام connected

  • content-type: application/json
  • cloudEvents:type: azure.webpubsub.sys.connected
  • cloudEvents:eventname: connected

نص الرسالة فارغ دائما JSON.

{}

حدث النظام disconnected

  • content-type: application/json
  • cloudEvents:type: azure.webpubsub.sys.disconnected
  • cloudEvents:eventname: disconnected

يحتوي نص الرسالة على سبب قطع اتصال العميل.

{"reason":"{Reason}"}

أحداث message المستخدم لعملاء WebSocket البسيطين

  • content-type: application/octet-stream للإطار الثنائي؛ text/plain للإطار النصي؛
  • cloudEvents:type: azure.webpubsub.user.message

نص الرسالة هو ما يرسله العميل.

حدث {custom_event} مخصص للمستخدم لعملاء PubSub WebSocket

  • content-type: application/octet-stream للإطار الثنائي؛ application/json لإطار JSON؛ text/plain للإطار النصي؛ application/x-protobuf لإطار Protobuf؛
  • cloudEvents:type: azure.webpubsub.user.<event_name>

توضح الحالات التالية كيفية إرسال الأحداث مع أنواع محتوى بيانات مختلفة وهيئات رسائل AMQP المستلمة.

الحالة 1: إرسال حدث مع بيانات نصية:

{
    "type": "event",
    "event": "<event_name>",
    "dataType": "text",
    "data": "text data"
}

النص الأساسي لرسالة AMQP المستلمة:

text data

الحالة 2: إرسال حدث مع بيانات JSON:

{
    "type": "event",
    "event": "<event_name>",
    "dataType": "json",
    "data": {
        "hello": "world"
     }
}

النص الأساسي لرسالة AMQP المستلمة:

{
    "hello": "world"
}

الحالة 3: إرسال حدث مع بيانات ثنائية:

{
    "type": "event",
    "event": "<event_name>",
    "dataType": "binary",
    "data": "aGVsbG8gd29ybGQ=" // base64 encoded binary
}

النص الأساسي لرسالة AMQP المستلمة:

<binary data>