Actor eseguita nel backend della tua app. Per l’SDK client che si connette a una sessione, consulta il riferimento SDK actors.
Per i concetti e la terminologia degli actor, consulta la panoramica degli actor.
Handler obbligatori
La classeActor è astratta. Implementa il corpo di ciascuno dei seguenti handler. Gli handler rispondono agli eventi dei client e dei timer.
Handler facoltativi
Implementa questi handler quando servono al tuo actor.
Quando la sessione usa i tick, imposta
tickIntervalMs. Se ometti shouldTick(), la sessione non esegue mai tick.
Metodi da chiamare
La classe actor offre funzionalità integrate. Di seguito i metodi che puoi usare quando implementi gli handler di un actor.
Usa
this.client per leggere e scrivere le entità.
Dichiarazione della classe
ImportaActor da base44:runtime/actors ed esporta una classe che estende Actor come export predefinito di base44/actors/<actor-name>/entry.ts.
Il nome della cartella diventa il nome dell’actor nell’SDK. Per i dettagli di configurazione, consulta creare un actor.
generic
Tipizza i messaggi che l’actor riceve dai client connessi. Si applica al
parametro
msg di handleMessage().generic
Tipizza i messaggi che l’actor invia ai client connessi. Si applica a
conn.send() e broadcast().API di runtime
Gli actor importano la classeActor dal modulo base44:runtime/actors:
Leggere i secret
Usasecrets.get() per leggere le variabili d’ambiente della tua app da un handler. Il metodo restituisce il valore come stringa, oppure undefined se il secret non è impostato.
Importa secrets dal modulo base44:runtime:
secrets set.
Ti consigliamo di chiamare una funzione backend per le operazioni che richiedono un secret. La funzione legge il secret e restituisce il risultato, così l’actor non riceve mai il secret. Per un flusso di esempio, consulta chiamare una funzione backend per operazioni con secret.
Handler del ciclo di vita
Base44 chiama questi handler in risposta all’attività dei client nella sessione. Sei tu a implementare il corpo di ciascuno. Scopri di più su come interagiscono actor e client. Per un flusso di esempio, consulta gestire le connessioni dei client.method
Viene eseguito ogni volta che una sessione si attiva, ad esempio:
- Quando la sessione viene creata per la prima volta.
- Quando un client si connette a una sessione inattiva.
- Quando arriva un messaggio a una sessione inattiva.
- Quando arriva un orario pianificato.
void o una Promise<void>.method
obbligatorio
Viene eseguito quando un client si connette alla sessione.
Puoi inviare lo stato attuale della sessione con
conn.send() o rifiutare la connessione con conn.reject().
Restituisce void o una Promise<void>.method
obbligatorio
Viene eseguito quando un client connesso invia un messaggio.
Puoi validare il messaggio prima di modificare lo stato della sessione o accedere ai dati dell’app.
Restituisce
void o una Promise<void>.method
obbligatorio
Viene eseguito quando un client si disconnette.
Usa questo handler per rimuovere qualsiasi stato di sessione associato all’ID della connessione.
Una riconnessione che riusa lo stesso ID sostituisce il vecchio socket senza eseguire
handleClose().
Restituisce void o una Promise<void>.Handler e impostazioni dei timer
Questi handler e impostazioni controllano il lavoro temporizzato nella sessione. Base44 li chiama quando arriva un orario pianificato, non in risposta all’attività dei client. Scopri di più sul lavoro pianificato. Per flussi di esempio, consulta eseguire i tick e pianificare i wake.method
obbligatorio
Viene eseguito una volta per intervallo mentre
shouldTick() restituisce true e la sessione ha almeno un client.
Restituisce void o una Promise<void>.number
Specifica l’intervallo tra i tick in millisecondi. Il valore predefinito è
100.method
Restituisce un
boolean. Restituisci true per continuare i tick della sessione, oppure false per fermarli. Questo metodo è sincrono.Mantieni questo metodo veloce e privo di effetti collaterali. Base44 chiama questo metodo dopo ogni connessione, messaggio, disconnessione e tick.method
Viene eseguito una volta quando arriva un orario impostato con
schedule().
Restituisce void o una Promise<void>.method
Pianifica un’esecuzione di
handleWake() in un momento specificato.
Restituisce una Promise che si risolve dopo che Base44 ha salvato la pianificazione.
La pianificazione sopravvive a un periodo di inattività e può avviare una sessione inattiva.
Chiamare di nuovo questo metodo con la stessa chiave sostituisce l’orario pianificato.method
Annulla il wake pianificato associato a una chiave.
Restituisce una
Promise che si risolve dopo che Base44 ha eliminato la pianificazione.Connessioni
Queste proprietà e metodi sono disponibili sull’oggettoconn passato agli handler del ciclo di vita che coinvolgono un client.
Usali per leggere l’identità del client, inviare messaggi e gestire la connessione.
Per una panoramica dei messaggi, consulta messaggi in tempo reale.
Per un flusso di esempio, consulta gestire le connessioni dei client.
conn è l’estremità backend del WebSocket, mentre Connection nel client è l’altra estremità dello stesso socket. Usa conn nella classe actor. Consulta il riferimento SDK actors per l’oggetto client.string
Identifica questa connessione. Corrisponde all’ID passato dal client durante la connessione,
oppure a un ID generato dall’SDK.
object
Identifica il client su questa connessione. Presente su tutte le
connessioni.
method
Invia un messaggio a questa connessione. Restituisce
void.method
Rifiuta una connessione da
handleConnect(). Restituisce void.method
Invia un messaggio a ogni connessione attiva nella sessione. Restituisce
void.method
Restituisce un array degli oggetti
conn attivi nella sessione. Usa questo metodo in
handleStart() per associare i dati ripristinati ai client rimasti connessi
durante un periodo di inattività.string
Proprietà a livello di sessione. Contiene l’ID di sessione usato dal client per raggiungere
questa sessione.
Storage
Usathis.storage per leggere e scrivere i dati di sessione. A differenza dei campi della classe, lo storage sopravvive ai periodi di inattività. Per scegliere tra storage e campi della classe, consulta storage. Per un flusso di esempio, consulta rendere persistenti i dati di sessione.
method
Recupera un valore tramite chiave. Restituisce una
Promise che si risolve nel valore
salvato, oppure in undefined se la chiave non esiste.method
Salva un valore tramite chiave. Sostituisce il valore già salvato con quella chiave. Restituisce
una
Promise che si risolve al completamento della scrittura.method
Rimuove un valore tramite chiave. Restituisce una
Promise che si risolve in true se la
chiave esisteva, altrimenti in false.method
Rimuove tutti i dati salvati per la sessione. Restituisce una
Promise che si risolve quando
l’archivio è vuoto. Una connessione successiva parte con lo stesso storage vuoto di una
nuova sessione.Accesso alle entità
Usathis.client e this.client.asServiceRole per leggere e scrivere le entità dell’app dall’interno di un handler dell’actor. Per un flusso di esempio, consulta scrivere dati delle entità da una sessione.
Base44Client
Fornisce un client dell’app limitato a questa sessione. Questo client usa l’autenticazione
anonima, quindi l’accesso alle entità segue le stesse regole di un client senza accesso.
Legge i dati di produzione.
Base44Client
Fornisce un accesso elevato che aggira la sicurezza a livello di riga. Valida i messaggi
prima di usare questo client. Rendi le scritture sicure da ripetere, perché la sessione può eseguire
di nuovo un handler dopo un errore.
Vedi anche
- Panoramica degli actor: Concetti e terminologia
- Actor: flussi di esempio: Ciclo di vita, timer, connessioni, storage, entità e funzioni backend
- Riferimento SDK
actors: API dell’SDK client secrets set: Configura le variabili d’ambiente dalla CLI
Questa pagina è stata tradotta con l’AI. Per le informazioni più accurate e aggiornate, consulta la versione inglese.