Skip to main content
Estás viendo la documentación para desarrolladores
Esta documentación es para desarrolladores que trabajan con la plataforma para desarrolladores de Base44.
Referencia completa de la clase 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 clase Actor 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

Importa Actor 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 clase Actor desde el módulo base44:runtime/actors:

Leer secretos

Usa secrets.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:
Configura los secretos desde la CLI con 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.
Devuelve 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 objeto conn 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

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

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

Esta página fue traducida con IA. Para obtener la información más precisa y actualizada, consulta la versión en inglés.