> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# יצירת Actor

> כתוב את ה-actor הראשון שלך וטפל במחזור החיים של החיבור

<div className="dev-docs-banner">
  <div className="dev-docs-banner-content">
    <div className="dev-docs-banner-title">
      אתה צופה בתיעוד למפתחים
    </div>

    <div className="dev-docs-banner-text">
      תיעוד זה מיועד למפתחים העובדים עם פלטפורמת המפתחים של Base44.
    </div>
  </div>
</div>

צור [actor](/he/developers/backend/resources/actors/overview#actors) כדי להריץ לוגיקת בקאנד עבור [session](/he/developers/backend/resources/actors/overview#sessions) חי שמשותף לכמה [לקוחות](/he/developers/backend/resources/actors/overview#client), כמו חדר צ'אט או משחק מרובה משתתפים. ה-actor מטפל בחיבורים, בהודעות ובניתוקים של לקוחות מצד הבקאנד.

## קובצי actor

צור actors כקובצי TypeScript בתיקיית ה-actors של הפרויקט. כל actor נמצא בתת-תיקייה משלו תחת `base44/actors/`, עם קובץ `entry.ts`:

<Tree>
  <Tree.Folder name="base44" defaultOpen>
    <Tree.Folder name="actors" defaultOpen>
      <Tree.Folder name="chatRoom" defaultOpen>
        <Tree.File name="entry.ts" />
      </Tree.Folder>
    </Tree.Folder>
  </Tree.Folder>
</Tree>

שם התיקייה הופך לשם ה-actor ב-SDK וקובע איך לקוחות קוראים ל-actor, למשל `base44.actors.chatRoom`. ייצא את מחלקת ה-actor כ-default export מקובץ `entry.ts`.

אפשר לכלול בתיקיית ה-actor קבצים נוספים מסוג `.ts`, `.js`, `.json` ו-`.jsonc`, ולייבא אותם מ-`entry.ts`.

## entry.ts

קובץ הקוד מכיל את מחלקת ה-actor. ייבא את `Actor` מ-`base44:runtime/actors` וייצא כ-default export מחלקה שמרחיבה את `Actor`. העבר את ה-generics `Incoming` ו-`Outgoing` כדי להגדיר טיפוסים להודעות שה-actor מקבל ושולח.

ממש את מתודות המחלקה הבאות. המתודה `handleStart()` אופציונלית:

* `handleStart()`: טוען נתוני session שמורים מהאחסון לשדות המחלקה. Base44 קוראת ל-handler הזה בכל פעם שה-session מופעל. כך המצב המשוחזר מוכן לפני ש-Base44 מטפלת בחיבור כלשהו. לדוגמת אחסון מלאה, ראה [שמירת נתוני session](/he/developers/backend/resources/actors/sample-flows#persist-session-data).

* `handleConnect()`: שולח את מצב ה-session הנוכחי ללקוח שמתחבר. לדחיית חיבורים או לזיהוי לקוחות, ראה [ניהול חיבורי לקוחות](/he/developers/backend/resources/actors/sample-flows#manage-client-connections).

* `handleMessage()`: מעדכן את מצב ה-session, שומר את המצב ומשדר את השינוי.

* `handleClose()`: מסיר כל מצב שקשור לחיבור הזה. אם אין מצב חיבור לניקוי, כתוב גוף ריק.

* `handleTick()`: מריץ קוד בכל מרווח tick. אם ה-actor לא משתמש ב-ticks, כתוב גוף ריק. להגדרת ticks, ראה [הרצת ticks](/he/developers/backend/resources/actors/sample-flows#run-ticks). לתזמון השכמה חד-פעמית, ראה [תזמון השכמות](/he/developers/backend/resources/actors/sample-flows#schedule-wakes).

הדוגמה הבאה מציגה actor פשוט בשם `ChatRoom`:

```typescript theme={null}
import { Actor } from "base44:runtime/actors";

type Incoming = { type: "message"; text: string };
type Outgoing =
  | { type: "history"; messages: string[] }
  | { type: "message"; text: string };

export default class ChatRoom extends Actor<Incoming, Outgoing> {
  messages: string[] = [];

  async handleStart() {
    this.messages = (await this.storage.get<string[]>("messages")) ?? [];
  }

  async handleConnect(conn) {
    conn.send({ type: "history", messages: this.messages });
  }

  async handleMessage(_conn, msg) {
    this.messages.push(msg.text);
    await this.storage.put("messages", this.messages);
    this.broadcast({ type: "message", text: msg.text });
  }

  async handleClose(_conn) {}

  async handleTick() {}
}
```

## ראה גם

* [סקירת Actors](/he/developers/backend/resources/actors/overview): מושגים ומונחים
* [קבצים וקוד של Actors](/he/developers/backend/resources/actors/reference): ה-API המלא של מחלקת הבקאנד
* [Actors: תהליכים לדוגמה](/he/developers/backend/resources/actors/sample-flows): דפוסים נוספים לטיימרים, חיבורים, אחסון ו-entities
* [`actors deploy`](/he/developers/references/cli/commands/actors-deploy): פריסת ה-actor ל-Base44

<Note>דף זה תורגם באמצעות AI. למידע המדויק והעדכני ביותר, עיין ב[גרסה האנגלית](/). </Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.