Skip to main content
אתה צופה בתיעוד למפתחים
תיעוד זה מיועד למפתחים העובדים עם פלטפורמת המפתחים של Base44.
השתמש בתהליכים לדוגמה האלה כנקודת התחלה למימוש שלך.

חיבור לקוח ל-session

כשה-frontend צריך להצטרף ל-session חי, לקבל הודעות מה-actor ולשלוח הודעות ל-actor, חבר לקוח ל-session של actor. לחיבור לקוח ל-session:
  1. קרא ל-base44.actors.ActorName(sessionId) כדי לבחור את ה-session.
  2. קרא ל-.connect() כדי לפתוח את חיבור ה-WebSocket.
  3. קרא ל-conn.subscribe() כדי לרשום מאזין להודעות מה-actor.
  4. קרא ל-conn.send() כדי לשלוח הודעה ל-actor.
הדוגמה הבאה מתחברת ל-session של actor בשם chatRoom, מאזינה להודעות ושולחת הודעה:
למידע נוסף על חיבורים, ראה חיבורים.

הרצת ticks

כשעבודה צריכה לחזור במרווח קבוע בזמן שלקוחות נמצאים ב-session, הרץ ticks. דוגמאות: שידור מצב המשחק או עדכון טיימר של סבב. להרצת ticks:
  1. הגדר את tickIntervalMs לאורך המרווח באלפיות שנייה.
  2. ממש את shouldTick() כך שיחזיר true כדי להמשיך ו-false כדי לעצור.
  3. ב-handleTick(), הרץ את העבודה של כל מרווח.
הדוגמה הבאה מריצה tick בכל שנייה כל עוד יש לפחות שני לקוחות ב-session, ומשדרת ספירה לאחור בכל tick:
למידע נוסף על ticks, ראה handlers והגדרות של טיימרים.

תזמון השכמות

כשעבודה צריכה לרוץ פעם אחת בזמן מסוים, בין אם ה-session פעיל ובין אם לא, תזמן השכמה. דוגמאות: סיום תור אחרי 30 שניות או סגירת לובי ריק. לתזמון השכמה:
  1. קרא ל-schedule() עם מפתח וזמן כדי להגדיר את ההשכמה.
  2. ב-handleWake(), בדוק את המפתח והרץ את העבודה של ההשכמה.
  3. כשההשכמה כבר לא רלוונטית, קרא ל-cancelSchedule() עם המפתח.
הדוגמה הבאה מתזמנת פסק זמן לתור כשתור מתחיל, ומשדרת הודעה כשפסק הזמן מופעל:
למידע נוסף על השכמות, ראה handlers והגדרות של טיימרים.

ניהול חיבורי לקוחות

כשצריך להחליט מי יכול להצטרף ל-session, להשיב ללקוח מסוים ולהגיע לכל הלקוחות ב-session, נהל את חיבורי הלקוחות. לניהול חיבורי לקוחות:
  1. ב-handleConnect(), בדוק את conn.identity וקרא ל-conn.reject() כדי לדחות לקוח.
  2. קרא ל-conn.send() כדי להשיב רק ללקוח הזה.
  3. ב-handleMessage(), קרא ל-broadcast() כדי להגיע לכל לקוח מחובר. כדי לזהות את השולח, כלול בהודעה שדות מ-conn.
הדוגמה הבאה דוחה לקוחות אנונימיים, שולחת היסטוריה ללקוח שמתחבר ומשדרת הודעות עם מזהה המשתמש של השולח:
למידע נוסף על חיבורים, ראה חיבורים.

שמירת נתוני session

כשערכים צריכים לשרוד תקופת חוסר פעילות, שמור את נתוני ה-session. דוגמאות: לוח, רשימת היסטוריה או התור הנוכחי. לשמירת נתוני session:
  1. ב-handleStart(), טען ערכים מ-this.storage לשדות המחלקה.
  2. אחרי כל שינוי, קרא ל-this.storage.put() כדי לשמור את הערך המעודכן.
  3. לאיפוס ה-session, קרא ל-this.storage.delete() או ל-this.storage.deleteAll().
הדוגמה הבאה טוענת לוח בהפעלה, שומרת אותו אחרי כל מהלך ומנקה את האחסון כשהלקוח האחרון מתנתק:
למידע נוסף על אחסון, ראה אחסון.

כתיבת נתוני entity מתוך session

כשה-session צריך ליצור או לעדכן רשומות באפליקציה, כתוב נתוני entity. דוגמאות: ניקוד סופי או הזמנה שהושלמה. לכתיבת נתוני entity מתוך session:
  1. אמת את ההודעה הנכנסת לפני הכתיבה.
  2. קרא את מזהה המשתמש מ-conn.identity.userId.
  3. השתמש ב-this.client.asServiceRole לגישה מורחבת. כתוב עם מפתח יציב, כמו מזהה ה-session, כדי ש-handler שרץ שוב יעדכן את אותה רשומה.
הדוגמה הבאה שומרת ניקוד סופי עבור הלקוח המאומת. שמירה מאוחרת יותר עבור אותו session מעדכנת את הרשומה הזו:
למידע נוסף על גישה ל-entities, ראה גישה ל-entities.

קריאה לפונקציית בקאנד לעבודה עם secrets

Actors יכולים לקרוא secrets של האפליקציה עם secrets.get(). כש-handler צריך לבצע עבודה שמשתמשת ב-secret, כמו קריאה ל-API חיצוני עם מפתח API, מומלץ לקרוא ל-פונקציית בקאנד. הפונקציה קוראת את ה-secret ומחזירה את התוצאה, ולעולם לא את ה-secret. לקריאה לפונקציית בקאנד מתוך actor:
  1. צור פונקציית בקאנד שקוראת את ה-secret עם secrets.get(), מבצעת את העבודה ומחזירה את התוצאה.
  2. ב-handler, קרא ל-this.client.functions.invoke() עם שם הפונקציה והנתונים לשליחה.
  3. השתמש בתוצאה ב-session, למשל שדר אותה ללקוחות המחוברים.
הדוגמה הבאה מציגה פונקציית בקאנד שקוראת מפתח API ומחזירה תרגום:
הדוגמה הבאה קוראת לפונקציה הזו מתוך actor ומשדרת את התוצאה:

ראה גם

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