Skip to main content
Stai visualizzando la documentazione per sviluppatori
Questa documentazione è per sviluppatori che lavorano con la piattaforma per sviluppatori di Base44.
Riferimento completo per la classe 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 classe Actor è 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

Importa Actor 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 classe Actor dal modulo base44:runtime/actors:

Leggere i secret

Usa secrets.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:
Configura i secret dalla CLI con 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.
Restituisce 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’oggetto conn 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

Usa this.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à

Usa this.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

Questa pagina è stata tradotta con l’AI. Per le informazioni più accurate e aggiornate, consulta la versione inglese.