Skip to main content
Vous consultez la documentation pour développeurs
Cette documentation est destinée aux développeurs travaillant avec la plateforme développeur Base44.
Référence complète de la classe Actor qui s’exécute dans le backend de votre application. Pour le SDK client qui se connecte à une session, consultez la référence SDK actors. Pour les concepts et la terminologie des acteurs, consultez la présentation des acteurs.

Gestionnaires obligatoires

La classe Actor est abstraite. Implémentez le corps de chacun des gestionnaires suivants. Les gestionnaires répondent aux événements des clients et des minuteurs.

Gestionnaires facultatifs

Implémentez ces gestionnaires lorsque votre acteur en a besoin. Lorsque la session utilise des ticks, définissez tickIntervalMs. Si vous omettez shouldTick(), la session n’exécute jamais de ticks.

Méthodes à appeler

La classe d’acteur fournit des fonctionnalités intégrées. Voici les méthodes que vous pouvez utiliser pour implémenter les gestionnaires d’un acteur. Utilisez this.client pour lire et écrire des entités.

Déclaration de classe

Importez Actor depuis base44:runtime/actors et exportez par défaut une classe qui étend Actor depuis base44/actors/<actor-name>/entry.ts. Le nom du dossier devient le nom de l’acteur dans le SDK. Pour les détails de configuration, consultez créer un acteur.
generic
Type les messages que l’acteur reçoit des clients connectés. S’applique au paramètre msg de handleMessage().
generic
Type les messages que l’acteur envoie aux clients connectés. S’applique à conn.send() et broadcast().

API d’exécution

Les acteurs importent la classe Actor depuis le module base44:runtime/actors :

Lire les secrets

Utilisez secrets.get() pour lire les variables d’environnement de votre application depuis un gestionnaire. La méthode renvoie la valeur sous forme de chaîne, ou undefined si le secret n’est pas défini. Importez secrets depuis le module base44:runtime :
Configurez les secrets depuis la CLI avec secrets set. Nous vous recommandons d’appeler une fonction backend pour les tâches qui nécessitent un secret. La fonction lit le secret et renvoie le résultat, l’acteur ne reçoit donc jamais le secret. Pour un exemple de flux, consultez appeler une fonction backend pour les tâches avec secret.

Gestionnaires de cycle de vie

Base44 appelle ces gestionnaires en réponse à l’activité des clients dans la session. Vous implémentez le corps de chacun. En savoir plus sur l’interaction entre acteurs et clients. Pour un exemple de flux, consultez gérer les connexions des clients.
method
S’exécute chaque fois qu’une session s’active, par exemple :
  • Lorsque la session est créée pour la première fois.
  • Lorsqu’un client se connecte à une session inactive.
  • Lorsqu’un message arrive sur une session inactive.
  • Lorsqu’une heure planifiée arrive.
Renvoie void ou une Promise<void>.
method
requis
S’exécute lorsqu’un client se connecte à la session. Vous pouvez envoyer l’état actuel de la session avec conn.send(), ou refuser la connexion avec conn.reject(). Renvoie void ou une Promise<void>.
method
requis
S’exécute lorsqu’un client connecté envoie un message. Vous pouvez valider le message avant de modifier l’état de la session ou d’accéder aux données de l’application. Renvoie void ou une Promise<void>.
method
requis
S’exécute lorsqu’un client se déconnecte. Utilisez ce gestionnaire pour supprimer tout état de session associé à l’ID de connexion. Une reconnexion qui réutilise le même ID remplace l’ancien socket sans exécuter handleClose(). Renvoie void ou une Promise<void>.

Gestionnaires et paramètres de minuteur

Ces gestionnaires et paramètres contrôlent les tâches minutées de la session. Base44 les appelle lorsqu’une heure planifiée arrive, et non en réponse à l’activité des clients. En savoir plus sur les tâches planifiées. Pour des exemples de flux, consultez exécuter des ticks et planifier des réveils.
method
requis
S’exécute une fois par intervalle tant que shouldTick() renvoie true et que la session a au moins un client. Renvoie void ou une Promise<void>.
number
Indique l’intervalle entre les ticks en millisecondes. Valeur par défaut : 100.
method
Renvoie un boolean. Renvoyez true pour maintenir les ticks de la session, ou false pour les arrêter. Cette méthode est synchrone.Gardez cette méthode rapide et sans effets de bord. Base44 l’appelle après chaque connexion, message, déconnexion et tick.
method
S’exécute une fois lorsqu’une heure définie avec schedule() arrive. Renvoie void ou une Promise<void>.
method
Planifie une exécution de handleWake() à une heure donnée. Renvoie une Promise qui se résout après l’enregistrement du planning par Base44. Le planning survit à une période d’inactivité et peut démarrer une session inactive. Appeler à nouveau cette méthode avec la même clé remplace l’heure planifiée.
method
Annule le réveil planifié associé à une clé. Renvoie une Promise qui se résout après la suppression du planning par Base44.

Connexions

Ces propriétés et méthodes sont disponibles sur l’objet conn passé aux gestionnaires de cycle de vie qui concernent un client. Utilisez-les pour lire l’identité du client, envoyer des messages et gérer la connexion. Pour une présentation de la messagerie, consultez messages en temps réel. Pour un exemple de flux, consultez gérer les connexions des clients.
conn est l’extrémité backend du WebSocket, et Connection côté client est l’autre extrémité du même socket. Utilisez conn dans la classe d’acteur. Consultez la référence SDK actors pour l’objet client.
string
Identifie cette connexion. Correspond à l’ID passé par le client lors de la connexion, ou à un ID généré par le SDK.
object
Identifie le client sur cette connexion. Présent sur toutes les connexions.
method
Envoie un message à cette connexion. Renvoie void.
method
Refuse une connexion depuis handleConnect(). Renvoie void.
method
Envoie un message à chaque connexion active de la session. Renvoie void.
method
Renvoie un tableau des objets conn actifs dans la session. Utilisez cette méthode dans handleStart() pour associer les données restaurées aux clients restés connectés pendant une période d’inactivité.
string
Propriété au niveau de la session. Contient l’ID de session que le client a utilisé pour atteindre cette session.

Stockage

Utilisez this.storage pour lire et écrire les données de session. Contrairement aux champs de la classe, le stockage survit aux périodes d’inactivité. Pour choisir entre le stockage et les champs de la classe, consultez stockage. Pour un exemple de flux, consultez persister les données de session.
method
Récupère une valeur par clé. Renvoie une Promise qui se résout avec la valeur stockée, ou undefined si la clé n’existe pas.
method
Enregistre une valeur par clé. Remplace la valeur déjà stockée sous cette clé. Renvoie une Promise qui se résout lorsque l’écriture est terminée.
method
Supprime une valeur par clé. Renvoie une Promise qui se résout avec true si la clé existait, et false sinon.
method
Supprime toutes les données enregistrées de la session. Renvoie une Promise qui se résout lorsque le magasin est vide. Une connexion ultérieure démarre avec le même stockage vide qu’une nouvelle session.

Accès aux entités

Utilisez this.client et this.client.asServiceRole pour lire et écrire les entités de l’application depuis un gestionnaire d’acteur. Pour un exemple de flux, consultez écrire des données d’entité depuis une session.
Base44Client
Fournit un client d’application limité à cette session. Ce client utilise une authentification anonyme. L’accès aux entités suit donc les mêmes règles qu’un client non connecté, et il lit les données de production.
Base44Client
Fournit un accès élevé qui contourne la sécurité au niveau ligne. Validez les messages avant d’utiliser ce client. Rendez les écritures sûres à répéter, car la session peut réexécuter un gestionnaire après une erreur.

Voir aussi

Cette page a été traduite par IA. Pour les informations les plus précises et à jour, consultez la version anglaise.