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 classeActor 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
ImportezActor 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 classeActor depuis le module base44:runtime/actors :
Lire les secrets
Utilisezsecrets.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 :
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.
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’objetconn 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
Utilisezthis.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
Utilisezthis.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
- Présentation des acteurs : concepts et terminologie
- Acteurs : exemples de flux : cycle de vie, minuteurs, connexions, stockage, entités et fonctions backend
- Référence SDK
actors: API du SDK client secrets set: configurer les variables d’environnement depuis la CLI
Cette page a été traduite par IA. Pour les informations les plus précises et à jour, consultez la version anglaise.