Actor que se ejecuta en el backend de tu app. Para el SDK de cliente que se conecta a una sesión, consulta la referencia del SDK de actors.
Para los conceptos y la terminología de los actores, consulta el resumen de actores.
Manejadores obligatorios
La claseActor es abstracta. Implementa el cuerpo de cada uno de los siguientes manejadores. Los manejadores responden a eventos de los clientes y de los temporizadores.
Manejadores opcionales
Implementa estos manejadores cuando tu actor los necesite.
Cuando la sesión usa ticks, define
tickIntervalMs. Si omites shouldTick(), la sesión nunca usa ticks.
Métodos que puedes llamar
La clase del actor ofrece funcionalidad integrada. Los siguientes métodos puedes usarlos al implementar los manejadores de un actor.
Usa
this.client para leer y escribir entidades.
Declaración de la clase
ImportaActor desde base44:runtime/actors y exporta una clase que extienda Actor como exportación predeterminada desde base44/actors/<actor-name>/entry.ts.
El nombre de la carpeta se convierte en el nombre del actor en el SDK. Para los detalles de configuración, consulta crear un actor.
generic
Tipa los mensajes que el actor recibe de los clientes conectados. Se aplica al
parámetro
msg de handleMessage().generic
Tipa los mensajes que el actor envía a los clientes conectados. Se aplica a
conn.send() y broadcast().API del runtime
Los actores importan la claseActor desde el módulo base44:runtime/actors:
Leer secretos
Usasecrets.get() para leer las variables de entorno de tu app desde un manejador. El método devuelve el valor como cadena, o undefined cuando el secreto no está definido.
Importa secrets desde el módulo base44:runtime:
secrets set.
Te recomendamos llamar a una función de backend para el trabajo que necesita un secreto. La función lee el secreto y devuelve el resultado, así el actor nunca recibe el secreto. Para ver un flujo de ejemplo, consulta llamar a una función de backend para trabajo con secretos.
Manejadores del ciclo de vida
Base44 llama a estos manejadores en respuesta a la actividad de los clientes en la sesión. Tú implementas el cuerpo de cada uno. Más información sobre cómo interactúan los actores y los clientes. Para ver un flujo de ejemplo, consulta gestionar las conexiones de clientes.method
Se ejecuta cada vez que una sesión se activa, por ejemplo:
- Cuando se crea la sesión por primera vez.
- Cuando un cliente se conecta a una sesión inactiva.
- Cuando llega un mensaje a una sesión inactiva.
- Cuando llega una hora programada.
void o una Promise<void>.method
requerido
Se ejecuta cuando un cliente se conecta a la sesión.
Puedes enviar el estado actual de la sesión con
conn.send(), o rechazar la conexión con conn.reject().
Devuelve void o una Promise<void>.method
requerido
Se ejecuta cuando un cliente conectado envía un mensaje.
Puedes validar el mensaje antes de cambiar el estado de la sesión o acceder a los datos de la app.
Devuelve
void o una Promise<void>.method
requerido
Se ejecuta cuando un cliente se desconecta.
Usa este manejador para eliminar cualquier estado de sesión asociado al ID de conexión.
Una reconexión que reutiliza el mismo ID sustituye el socket anterior sin ejecutar
handleClose().
Devuelve void o una Promise<void>.Manejadores y configuración de temporizadores
Estos manejadores y ajustes controlan el trabajo temporizado de la sesión. Base44 los llama cuando llega una hora programada, no en respuesta a la actividad de los clientes. Más información sobre el trabajo programado. Para ver flujos de ejemplo, consulta ejecutar ticks y programar despertares.method
requerido
Se ejecuta una vez por intervalo mientras
shouldTick() devuelve true y la sesión tiene al menos un cliente.
Devuelve void o una Promise<void>.number
Especifica el intervalo entre ticks en milisegundos. El valor predeterminado es
100.method
Devuelve un
boolean. Devuelve true para mantener los ticks de la sesión, o false para detenerlos. Este método es síncrono.Mantén este método rápido y sin efectos secundarios. Base44 llama a este método después de cada conexión, mensaje, desconexión y tick.method
Se ejecuta una vez cuando llega una hora definida con
schedule().
Devuelve void o una Promise<void>.method
Programa una ejecución de
handleWake() a una hora especificada.
Devuelve una Promise que se resuelve después de que Base44 almacena la programación.
La programación sobrevive a un periodo de inactividad y puede iniciar una sesión inactiva.
Llamar de nuevo a este método con la misma clave sustituye la hora programada.method
Cancela el despertar programado asociado a una clave.
Devuelve una
Promise que se resuelve después de que Base44 borra la programación.Conexiones
Estas propiedades y métodos están disponibles en el objetoconn que se pasa a los manejadores del ciclo de vida que implican a un cliente.
Úsalos para leer la identidad del cliente, enviar mensajes y gestionar la conexión.
Para una descripción general de la mensajería, consulta mensajes en tiempo real.
Para ver un flujo de ejemplo, consulta gestionar las conexiones de clientes.
conn es el extremo de backend del WebSocket, y Connection en el cliente es el otro extremo del mismo socket. Usa conn en la clase del actor. Consulta la referencia del SDK de actors para el objeto del cliente.string
Identifica esta conexión. Coincide con el ID que pasó el cliente al conectarse,
o con un ID que generó el SDK.
object
Identifica al cliente de esta conexión. Está presente en todas las
conexiones.
method
Envía un mensaje a esta conexión. Devuelve
void.method
Rechaza una conexión desde
handleConnect(). Devuelve void.method
Envía un mensaje a todas las conexiones activas de la sesión. Devuelve
void.method
Devuelve un array de los objetos
conn activos de la sesión. Usa este método en
handleStart() para asociar los datos restaurados con los clientes que siguieron conectados
durante un periodo de inactividad.string
Propiedad a nivel de sesión. Contiene el ID de sesión que usó el cliente para llegar
a esta sesión.
Almacenamiento
Usathis.storage para leer y escribir datos de la sesión. A diferencia de los campos de clase, el almacenamiento sobrevive a los periodos de inactividad. Para elegir entre el almacenamiento y los campos de clase, consulta almacenamiento. Para ver un flujo de ejemplo, consulta conservar los datos de sesión.
method
Recupera un valor por clave. Devuelve una
Promise que se resuelve con el valor
almacenado, o undefined cuando la clave no existe.method
Guarda un valor por clave. Sustituye el valor ya almacenado con esa clave. Devuelve
una
Promise que se resuelve cuando termina la escritura.method
Elimina un valor por clave. Devuelve una
Promise que se resuelve con true cuando la
clave existía, y con false en caso contrario.method
Elimina todos los datos guardados de la sesión. Devuelve una
Promise que se resuelve cuando
el almacén está vacío. Una conexión posterior empieza con el mismo almacenamiento vacío que
una sesión nueva.Acceso a entidades
Usathis.client y this.client.asServiceRole para leer y escribir entidades de la app desde dentro de un manejador del actor. Para ver un flujo de ejemplo, consulta escribir datos de entidades desde una sesión.
Base44Client
Proporciona un cliente de la app limitado a esta sesión. Este cliente usa autenticación
anónima, así que el acceso a las entidades sigue las mismas reglas que un cliente
sin sesión iniciada, y lee datos de producción.
Base44Client
Proporciona acceso elevado que omite la seguridad a nivel de fila. Valida los mensajes
antes de usar este cliente. Haz que las escrituras se puedan repetir de forma segura, porque la sesión puede volver a ejecutar un manejador
después de un error.
Ver también
- Resumen de actores: Conceptos y terminología
- Actores: flujos de ejemplo: Ciclo de vida, temporizadores, conexiones, almacenamiento, entidades y funciones de backend
- Referencia del SDK de
actors: API del SDK de cliente secrets set: Configura variables de entorno desde la CLI
Esta página fue traducida con IA. Para obtener la información más precisa y actualizada, consulta la versión en inglés.