Skip to main content
Du siehst gerade die Entwicklerdokumentation
Diese Dokumentation richtet sich an Entwickler, die mit der Base44-Entwicklerplattform arbeiten.
Vollständige Referenz für die Klasse Actor, die im Backend deiner App läuft. Das Client-SDK, das sich mit einer Session verbindet, findest du in der actors SDK-Referenz. Konzepte und Terminologie zu Actors findest du in der Actors-Übersicht.

Erforderliche Handler

Die Klasse Actor ist abstrakt. Implementiere den Rumpf jedes der folgenden Handler. Die Handler reagieren auf Ereignisse von Clients und Timern.

Optionale Handler

Implementiere diese Handler, wenn dein Actor sie braucht. Wenn die Session tickt, setze tickIntervalMs. Wenn du shouldTick() weglässt, tickt die Session nie.

Aufrufbare Methoden

Die Actor-Klasse bietet eingebaute Funktionen. Die folgenden Methoden kannst du bei der Implementierung der Handler eines Actors verwenden. Verwende this.client, um Entitäten zu lesen und zu schreiben.

Klassendeklaration

Importiere Actor aus base44:runtime/actors und exportiere eine Klasse, die Actor erweitert, als Default-Export aus base44/actors/<actor-name>/entry.ts. Der Ordnername wird zum Actor-Namen im SDK. Details zur Einrichtung findest du unter Einen Actor erstellen.
generic
Typisiert die Nachrichten, die der Actor von verbundenen Clients empfängt. Gilt für den Parameter msg von handleMessage().
generic
Typisiert die Nachrichten, die der Actor an verbundene Clients sendet. Gilt für conn.send() und broadcast().

Runtime-API

Actors importieren die Klasse Actor aus dem Modul base44:runtime/actors:

Secrets lesen

Verwende secrets.get(), um die Umgebungsvariablen deiner App in einem Handler zu lesen. Die Methode gibt den Wert als String zurück oder undefined, wenn das Secret nicht gesetzt ist. Importiere secrets aus dem Modul base44:runtime:
Konfiguriere Secrets über die CLI mit secrets set. Für Aufgaben, die ein Secret brauchen, empfehlen wir den Aufruf einer Backend-Funktion. Die Funktion liest das Secret und gibt das Ergebnis zurück, sodass der Actor das Secret nie erhält. Einen Beispielablauf findest du unter Eine Backend-Funktion für Aufgaben mit Secrets aufrufen.

Lebenszyklus-Handler

Base44 ruft diese Handler als Reaktion auf Client-Aktivität in der Session auf. Du implementierst jeweils den Rumpf. Erfahre mehr darüber, wie Actors und Clients interagieren. Einen Beispielablauf findest du unter Client-Verbindungen verwalten.
method
Läuft bei jeder Aktivierung einer Session, zum Beispiel:
  • Wenn die Session zum ersten Mal erstellt wird.
  • Wenn sich ein Client mit einer inaktiven Session verbindet.
  • Wenn eine Nachricht bei einer inaktiven Session eingeht.
  • Wenn ein geplanter Zeitpunkt erreicht ist.
Gibt void oder ein Promise<void> zurück.
method
erforderlich
Läuft, wenn sich ein Client mit der Session verbindet. Du kannst den aktuellen Session-Zustand mit conn.send() senden oder die Verbindung mit conn.reject() ablehnen. Gibt void oder ein Promise<void> zurück.
method
erforderlich
Läuft, wenn ein verbundener Client eine Nachricht sendet. Du kannst die Nachricht validieren, bevor du den Session-Zustand änderst oder auf App-Daten zugreifst. Gibt void oder ein Promise<void> zurück.
method
erforderlich
Läuft, wenn ein Client die Verbindung trennt. Verwende diesen Handler, um Session-Zustand zu entfernen, der mit der Verbindungs-ID verknüpft ist. Eine erneute Verbindung mit derselben ID ersetzt den alten Socket, ohne handleClose() auszuführen. Gibt void oder ein Promise<void> zurück.

Timer-Handler und Einstellungen

Diese Handler und Einstellungen steuern zeitgesteuerte Arbeit in der Session. Base44 ruft sie auf, wenn ein geplanter Zeitpunkt erreicht ist, nicht als Reaktion auf Client-Aktivität. Erfahre mehr über geplante Arbeit. Beispielabläufe findest du unter Ticks ausführen und Wakes planen.
method
erforderlich
Läuft einmal pro Intervall, solange shouldTick() true zurückgibt und die Session mindestens einen Client hat. Gibt void oder ein Promise<void> zurück.
number
Legt das Intervall zwischen Ticks in Millisekunden fest. Standardwert ist 100.
method
Gibt einen boolean zurück. Gib true zurück, damit die Session weiter tickt, oder false, um das Ticken zu stoppen. Diese Methode ist synchron.Halte diese Methode schnell und frei von Seiteneffekten. Base44 ruft sie nach jeder Verbindung, Nachricht, Trennung und jedem Tick auf.
method
Läuft einmal, wenn ein mit schedule() festgelegter Zeitpunkt erreicht ist. Gibt void oder ein Promise<void> zurück.
method
Plant eine einmalige Ausführung von handleWake() zu einem festgelegten Zeitpunkt. Gibt ein Promise zurück, das erfüllt wird, nachdem Base44 den Zeitplan gespeichert hat. Der Zeitplan übersteht Leerlaufphasen und kann eine inaktive Session starten. Ein erneuter Aufruf mit demselben Schlüssel ersetzt den geplanten Zeitpunkt.
method
Bricht den geplanten Wake ab, der mit einem Schlüssel verknüpft ist. Gibt ein Promise zurück, das erfüllt wird, nachdem Base44 den Zeitplan entfernt hat.

Verbindungen

Diese Eigenschaften und Methoden stehen im Objekt conn zur Verfügung, das an Lebenszyklus-Handler mit Client-Bezug übergeben wird. Verwende sie, um die Client-Identität zu lesen, Nachrichten zu senden und die Verbindung zu verwalten. Einen Überblick über Nachrichten findest du unter Echtzeitnachrichten. Einen Beispielablauf findest du unter Client-Verbindungen verwalten.
conn ist das Backend-Ende des WebSockets, und Connection im Client ist das andere Ende desselben Sockets. Verwende conn in der Actor-Klasse. Das Client-Objekt findest du in der actors SDK-Referenz.
string
Identifiziert diese Verbindung. Entspricht der ID, die der Client beim Verbinden übergeben hat, oder einer vom SDK generierten ID.
object
Identifiziert den Client dieser Verbindung. Bei allen Verbindungen vorhanden.
method
Sendet eine Nachricht an diese Verbindung. Gibt void zurück.
method
Lehnt eine Verbindung in handleConnect() ab. Gibt void zurück.
method
Sendet eine Nachricht an jede aktive Verbindung in der Session. Gibt void zurück.
method
Gibt ein Array der aktiven conn-Objekte in der Session zurück. Verwende diese Methode in handleStart(), um wiederhergestellte Daten den Clients zuzuordnen, die während einer Leerlaufphase verbunden geblieben sind.
string
Eigenschaft auf Session-Ebene. Enthält die Session-ID, mit der der Client diese Session erreicht hat.

Speicher

Verwende this.storage, um Session-Daten zu lesen und zu schreiben. Anders als Klassenfelder übersteht der Speicher Leerlaufphasen. Wie du zwischen Speicher und Klassenfeldern wählst, erfährst du unter Speicher. Einen Beispielablauf findest du unter Session-Daten persistieren.
method
Ruft einen Wert über seinen Schlüssel ab. Gibt ein Promise zurück, das mit dem gespeicherten Wert aufgelöst wird, oder mit undefined, wenn der Schlüssel nicht existiert.
method
Speichert einen Wert unter einem Schlüssel. Ersetzt den bereits unter dem Schlüssel gespeicherten Wert. Gibt ein Promise zurück, das erfüllt wird, wenn der Schreibvorgang abgeschlossen ist.
method
Entfernt einen Wert über seinen Schlüssel. Gibt ein Promise zurück, das mit true aufgelöst wird, wenn der Schlüssel existierte, andernfalls mit false.
method
Entfernt alle gespeicherten Daten der Session. Gibt ein Promise zurück, das erfüllt wird, wenn der Speicher leer ist. Eine spätere Verbindung startet mit demselben leeren Speicher wie eine neue Session.

Zugriff auf Entitäten

Verwende this.client und this.client.asServiceRole, um in einem Actor-Handler App-Entitäten zu lesen und zu schreiben. Einen Beispielablauf findest du unter Entitätsdaten aus einer Session schreiben.
Base44Client
Stellt einen App-Client bereit, der auf diese Session beschränkt ist. Dieser Client verwendet anonyme Authentifizierung. Der Zugriff auf Entitäten folgt daher denselben Regeln wie bei einem abgemeldeten Client, und er liest Produktionsdaten.
Base44Client
Bietet erweiterten Zugriff, der die Sicherheit auf Zeilenebene umgeht. Validiere Nachrichten, bevor du diesen Client verwendest. Gestalte Schreibvorgänge wiederholbar, da die Session einen Handler nach einem Fehler erneut ausführen kann.

Siehe auch

Diese Seite wurde mit KI übersetzt. Die genauesten und aktuellsten Informationen findest du in der englischen Version.