ملحق 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 مع قيم السمة التي تعتمد على نوع حدث عميل معين. يتم حذف قيم السمات التي لا تعتمد على نوع حدث العميل.
- حدث النظام
connect
: غير مدعوم من قبل مستمعي الأحداث. - حدث النظام
connected
- حدث النظام
disconnected
- أحداث
message
المستخدم لعملاء WebSocket البسيطين - حدث
{custom_event}
مخصص للمستخدم لعملاء PubSub WebSocket
حدث النظام 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>