חיבור לקוח ל-session
כשה-frontend צריך להצטרף ל-session חי, לקבל הודעות מה-actor ולשלוח הודעות ל-actor, חבר לקוח ל-session של actor. לחיבור לקוח ל-session:- קרא ל-
base44.actors.ActorName(sessionId)כדי לבחור את ה-session. - קרא ל-
.connect()כדי לפתוח את חיבור ה-WebSocket. - קרא ל-
conn.subscribe()כדי לרשום מאזין להודעות מה-actor. - קרא ל-
conn.send()כדי לשלוח הודעה ל-actor.
chatRoom, מאזינה להודעות ושולחת הודעה:
הרצת ticks
כשעבודה צריכה לחזור במרווח קבוע בזמן שלקוחות נמצאים ב-session, הרץ ticks. דוגמאות: שידור מצב המשחק או עדכון טיימר של סבב. להרצת ticks:- הגדר את
tickIntervalMsלאורך המרווח באלפיות שנייה. - ממש את
shouldTick()כך שיחזירtrueכדי להמשיך ו-falseכדי לעצור. - ב-
handleTick(), הרץ את העבודה של כל מרווח.
תזמון השכמות
כשעבודה צריכה לרוץ פעם אחת בזמן מסוים, בין אם ה-session פעיל ובין אם לא, תזמן השכמה. דוגמאות: סיום תור אחרי 30 שניות או סגירת לובי ריק. לתזמון השכמה:- קרא ל-
schedule()עם מפתח וזמן כדי להגדיר את ההשכמה. - ב-
handleWake(), בדוק את המפתח והרץ את העבודה של ההשכמה. - כשההשכמה כבר לא רלוונטית, קרא ל-
cancelSchedule()עם המפתח.
ניהול חיבורי לקוחות
כשצריך להחליט מי יכול להצטרף ל-session, להשיב ללקוח מסוים ולהגיע לכל הלקוחות ב-session, נהל את חיבורי הלקוחות. לניהול חיבורי לקוחות:- ב-
handleConnect(), בדוק אתconn.identityוקרא ל-conn.reject()כדי לדחות לקוח. - קרא ל-
conn.send()כדי להשיב רק ללקוח הזה. - ב-
handleMessage(), קרא ל-broadcast()כדי להגיע לכל לקוח מחובר. כדי לזהות את השולח, כלול בהודעה שדות מ-conn.
שמירת נתוני session
כשערכים צריכים לשרוד תקופת חוסר פעילות, שמור את נתוני ה-session. דוגמאות: לוח, רשימת היסטוריה או התור הנוכחי. לשמירת נתוני session:- ב-
handleStart(), טען ערכים מ-this.storageלשדות המחלקה. - אחרי כל שינוי, קרא ל-
this.storage.put()כדי לשמור את הערך המעודכן. - לאיפוס ה-session, קרא ל-
this.storage.delete()או ל-this.storage.deleteAll().
כתיבת נתוני entity מתוך session
כשה-session צריך ליצור או לעדכן רשומות באפליקציה, כתוב נתוני entity. דוגמאות: ניקוד סופי או הזמנה שהושלמה. לכתיבת נתוני entity מתוך session:- אמת את ההודעה הנכנסת לפני הכתיבה.
- קרא את מזהה המשתמש מ-
conn.identity.userId. - השתמש ב-
this.client.asServiceRoleלגישה מורחבת. כתוב עם מפתח יציב, כמו מזהה ה-session, כדי ש-handler שרץ שוב יעדכן את אותה רשומה.
קריאה לפונקציית בקאנד לעבודה עם secrets
Actors יכולים לקרוא secrets של האפליקציה עםsecrets.get(). כש-handler צריך לבצע עבודה שמשתמשת ב-secret, כמו קריאה ל-API חיצוני עם מפתח API, מומלץ לקרוא ל-פונקציית בקאנד. הפונקציה קוראת את ה-secret ומחזירה את התוצאה, ולעולם לא את ה-secret.
לקריאה לפונקציית בקאנד מתוך actor:
- צור פונקציית בקאנד שקוראת את ה-secret עם
secrets.get(), מבצעת את העבודה ומחזירה את התוצאה. - ב-handler, קרא ל-
this.client.functions.invoke()עם שם הפונקציה והנתונים לשליחה. - השתמש בתוצאה ב-session, למשל שדר אותה ללקוחות המחוברים.
ראה גם
- סקירת Actors: מושגים ומונחים
- יצירת Actor: קובצי actor ומחלקה מינימלית
- קבצים וקוד של Actors: ה-API המלא של מחלקת הבקאנד
actors deploy: פריסת actors מקומיים
דף זה תורגם באמצעות AI. למידע המדויק והעדכני ביותר, עיין בגרסה האנגלית.