sbarbase
المحتويات

Realtime

يتيح Realtime للعملاء متابعة التغييرات في قاعدة البيانات، وتبادل رسائل البث والحضور فيما بينهم، عبر supabase.channel()، كما في Supabase. كل بيئة تشغّله لنفسها.

شغّله

  1. افتح البيئة في لوحة الإدارة، ثم Services.
  2. تحت Realtime اضغط Turn on Realtime. تظهر Applying… ثم On، وعادةً خلال دقيقة.

وحدهم مالكو العميل ومديروه يرون هذا القسم. إذا لم تكفِ ذاكرة الخادم أو اتصالات قاعدة البيانات لتشغيل Realtime لبيئة أخرى، يقول القسم ذلك ولا يتغير شيء؛ انظر اختيار خادم.

استخدمه

لا يتغير شيء في تطبيقك: وجّه supabase-js إلى عنوان البيئة مع مفتاحها العام، كما تفعل مع كل شيء آخر.

const channel = supabase.channel('room-one')
  .on('broadcast', { event: 'hello' }, (message) => console.log(message.payload))
  .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'messages' }, (change) => console.log(change.new))
  .on('presence', { event: 'sync' }, () => console.log(channel.presenceState()))
  .subscribe()

كيف يعمل

كل بيئة تشغّل Realtime تحصل على خدمة Realtime صغيرة خاصة بها (الصورة الأصلية، بإصدار مثبّت). تستهلك حتى 320 MiB من الذاكرة وتتوقف عندما تطفئ Realtime. تدخل إلى قاعدة بيانات تلك البيئة وحدها، بحساب دخول خاص بها.

عند أول تشغيل لـ Realtime، وبعد الترقية إلى إصدار أحدث منه، يُعطى حساب دخوله صلاحيات المدير لثوانٍ قليلة يحتاجها Realtime لإنشاء مخططه الخاص، كما يتوقع Realtime الأصلي. تُسحب هذه الصلاحيات، وتُغلق كل جلسة حصلت عليها، قبل أن ينتهي التشغيل.

يمر الاتصال وواجهة البث عبر البوابة نفسها التي يمر بها REST: المفتاح الخاطئ أو الملغى يُرفض قبل أن يصل أي شيء إلى Realtime. ولا يمكن الوصول إلى واجهة إدارة Realtime نفسها من الخارج أبدًا.

يشغّل CI خدمة Realtime لبيئة على جهاز نظيف مع كل تغيير، فيتبادل عميلان من supabase-js بثًا ويتشاركان الحضور ويستلمان صفًا أُضيف عبر REST، ويتحقق أن المفتاح الخاطئ يُرفض، ثم يطفئها من جديد (الدليل).

الحدود

عدّل على GitHub