Skip to main content
אתה צופה בתיעוד למפתחים
תיעוד זה מיועד למפתחים העובדים עם פלטפורמת המפתחים של Base44.
תיעוד מלא של המחלקה Actor שרצה בבקאנד של האפליקציה. ל-SDK בצד הלקוח שמתחבר ל-session, ראה את תיעוד ה-SDK של actors. למושגים ומונחים של actors, ראה את סקירת ה-actors.

Handlers נדרשים

המחלקה Actor היא מופשטת. ממש את הגוף של כל אחד מה-handlers הבאים. ה-handlers מגיבים לאירועים מלקוחות ומטיימרים.

Handlers אופציונליים

כשה-actor צריך אותם, ממש את ה-handlers האלה. כשה-session מריץ ticks, הגדר את tickIntervalMs. אם תשמיט את shouldTick(), ה-session לעולם לא יריץ ticks.

מתודות לקריאה

מחלקת ה-actor מספקת יכולות מובנות. אלה המתודות שאפשר להשתמש בהן בזמן מימוש ה-handlers של actor. השתמש ב-this.client כדי לקרוא ולכתוב entities.

הצהרת המחלקה

ייבא את Actor מ-base44:runtime/actors וייצא כ-default export מחלקה שמרחיבה את Actor, מהקובץ base44/actors/<actor-name>/entry.ts. שם התיקייה הופך לשם ה-actor ב-SDK. לפרטי הגדרה, ראה יצירת actor.
generic
מגדיר את הטיפוסים של ההודעות שה-actor מקבל מלקוחות מחוברים. חל על הפרמטר msg של handleMessage().
generic
מגדיר את הטיפוסים של ההודעות שה-actor שולח ללקוחות מחוברים. חל על conn.send() ו-broadcast().

Runtime API

Actors מייבאים את המחלקה Actor מהמודול base44:runtime/actors:

קריאת secrets

השתמש ב-secrets.get() כדי לקרוא את משתני הסביבה של האפליקציה מתוך handler. המתודה מחזירה את הערך כמחרוזת, או undefined כשה-secret לא מוגדר. ייבא את secrets מהמודול base44:runtime:
הגדר secrets מה-CLI עם secrets set. מומלץ לקרוא ל-פונקציית בקאנד לעבודה שדורשת secret. הפונקציה קוראת את ה-secret ומחזירה את התוצאה, כך שה-actor לעולם לא מקבל את ה-secret. לתהליך לדוגמה, ראה קריאה לפונקציית בקאנד לעבודה עם secrets.

Handlers של מחזור חיים

Base44 קוראת ל-handlers האלה בתגובה לפעילות של לקוחות ב-session. אתה מממש את הגוף של כל אחד מהם. למידע נוסף, ראה איך actors ולקוחות מתקשרים. לתהליך לדוגמה, ראה ניהול חיבורי לקוחות.
method
רץ בכל פעם ש-session מופעל, למשל:
  • כשה-session נוצר לראשונה.
  • כשלקוח מתחבר ל-session לא פעיל.
  • כשהודעה מגיעה ל-session לא פעיל.
  • כשמגיע זמן מתוזמן.
מחזיר void או Promise<void>.
method
נדרש
רץ כשלקוח מתחבר ל-session. אפשר לשלוח את מצב ה-session הנוכחי עם conn.send(), או לדחות את החיבור עם conn.reject(). מחזיר void או Promise<void>.
method
נדרש
רץ כשלקוח מחובר שולח הודעה. אפשר לאמת את ההודעה לפני שינוי מצב ה-session או גישה לנתוני האפליקציה. מחזיר void או Promise<void>.
method
נדרש
רץ כשלקוח מתנתק. השתמש ב-handler הזה כדי להסיר כל מצב session שקשור למזהה החיבור. התחברות מחדש עם אותו מזהה מחליפה את ה-socket הישן בלי להריץ את handleClose(). מחזיר void או Promise<void>.

Handlers והגדרות של טיימרים

ה-handlers וההגדרות האלה שולטים בעבודה מתוזמנת ב-session. Base44 קוראת להם כשמגיע זמן מתוזמן, ולא בתגובה לפעילות של לקוחות. למידע נוסף, ראה עבודה מתוזמנת. לתהליכים לדוגמה, ראה הרצת ticks ותזמון השכמות.
method
נדרש
רץ פעם אחת בכל מרווח, כל עוד shouldTick() מחזיר true ויש ב-session לפחות לקוח אחד. מחזיר void או Promise<void>.
number
מציין את המרווח בין ticks באלפיות שנייה. ברירת המחדל היא 100.
method
מחזיר boolean. החזר true כדי להמשיך להריץ ticks, או false כדי לעצור. המתודה הזו סינכרונית.שמור על המתודה הזו מהירה וללא תופעות לוואי. Base44 קוראת לה אחרי כל חיבור, הודעה, ניתוק ו-tick.
method
רץ פעם אחת כשמגיע זמן שהוגדר עם schedule(). מחזיר void או Promise<void>.
method
מתזמן הרצה אחת של handleWake() בזמן מסוים. מחזיר Promise שמסתיים אחרי ש-Base44 שומרת את התזמון. התזמון שורד תקופת חוסר פעילות ויכול להפעיל session לא פעיל. קריאה חוזרת למתודה עם אותו מפתח מחליפה את הזמן המתוזמן.
method
מבטל את ההשכמה המתוזמנת שקשורה למפתח. מחזיר Promise שמסתיים אחרי ש-Base44 מנקה את התזמון.

חיבורים

המאפיינים והמתודות האלה זמינים באובייקט conn שמועבר ל-handlers של מחזור חיים שמערבים לקוח. השתמש בהם כדי לקרוא את זהות הלקוח, לשלוח הודעות ולנהל את החיבור. לסקירה של שליחת הודעות, ראה הודעות בזמן אמת. לתהליך לדוגמה, ראה ניהול חיבורי לקוחות.
conn הוא צד הבקאנד של ה-WebSocket, ו-Connection בלקוח הוא הצד השני של אותו socket. השתמש ב-conn במחלקת ה-actor. לאובייקט בצד הלקוח, ראה את תיעוד ה-SDK של actors.
string
מזהה את החיבור הזה. תואם למזהה שהלקוח העביר בעת ההתחברות, או למזהה שה-SDK יצר.
object
מזהה את הלקוח בחיבור הזה. קיים בכל החיבורים.
method
שולח הודעה לחיבור הזה. מחזיר void.
method
דוחה חיבור מתוך handleConnect(). מחזיר void.
method
שולח הודעה לכל חיבור חי ב-session. מחזיר void.
method
מחזיר מערך של אובייקטי conn חיים ב-session. השתמש במתודה הזו ב-handleStart() כדי להתאים נתונים משוחזרים ללקוחות שנשארו מחוברים במהלך תקופת חוסר פעילות.
string
מאפיין ברמת ה-session. מכיל את מזהה ה-session שהלקוח השתמש בו כדי להגיע ל-session הזה.

אחסון

השתמש ב-this.storage כדי לקרוא ולכתוב נתוני session. בניגוד לשדות מחלקה, האחסון שורד תקופות של חוסר פעילות. לבחירה בין אחסון לשדות מחלקה, ראה אחסון. לתהליך לדוגמה, ראה שמירת נתוני session.
method
מאחזר ערך לפי מפתח. מחזיר Promise שמחזיר את הערך השמור, או undefined כשהמפתח לא קיים.
method
שומר ערך לפי מפתח. מחליף את הערך שכבר שמור תחת המפתח. מחזיר Promise שמסתיים כשהכתיבה מושלמת.
method
מסיר ערך לפי מפתח. מחזיר Promise שמחזיר true כשהמפתח היה קיים, ו-false אחרת.
method
מסיר את כל הנתונים השמורים של ה-session. מחזיר Promise שמסתיים כש- המאגר ריק. חיבור מאוחר יותר מתחיל עם אותו אחסון ריק כמו session חדש.

גישה ל-entities

השתמש ב-this.client וב-this.client.asServiceRole כדי לקרוא ולכתוב entities של האפליקציה מתוך handler של actor. לתהליך לדוגמה, ראה כתיבת נתוני entity מתוך session.
Base44Client
מספק לקוח אפליקציה שמוגבל ל-session הזה. הלקוח משתמש באימות אנונימי, ולכן הגישה ל-entities כפופה לאותם כללים כמו של לקוח שלא מחובר לחשבון. הוא קורא נתוני ייצור.
Base44Client
מספק גישה מורחבת שעוקפת את האבטחה ברמת השורה. אמת הודעות לפני שאתה משתמש בלקוח הזה. ודא שהכתיבות בטוחות לחזרה, כי ה-session עשוי להריץ handler שוב אחרי שגיאה.

ראה גם

דף זה תורגם באמצעות AI. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.