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 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
שוב אחרי שגיאה.
ראה גם
- סקירת Actors: מושגים ומונחים
- Actors: תהליכים לדוגמה: מחזור חיים, טיימרים, חיבורים, אחסון, entities ופונקציות בקאנד
- תיעוד ה-SDK של
actors: ה-API של ה-SDK בצד הלקוח secrets set: הגדרת משתני סביבה מה-CLI
דף זה תורגם באמצעות AI. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.