Skip to main content
Você está vendo a documentação para desenvolvedores
Esta documentação é para desenvolvedores que trabalham com a plataforma para desenvolvedores Base44.
Referência completa da classe Actor que é executada no backend do seu app. Para o SDK do cliente que se conecta a uma sessão, veja a referência do SDK de actors. Para conceitos e terminologia de actors, veja a visão geral de actors.

Handlers obrigatórios

A classe Actor é abstrata. Implemente o corpo de cada um dos handlers a seguir. Os handlers respondem a eventos de clientes e timers.

Handlers opcionais

Quando seu actor precisar deles, implemente estes handlers. Quando a sessão usa ticks, defina tickIntervalMs. Se você omitir shouldTick(), a sessão nunca executa ticks.

Métodos para chamar

A classe do actor oferece funcionalidades integradas. Os métodos a seguir podem ser usados ao implementar os handlers de um actor. Use this.client para ler e gravar entidades.

Declaração da classe

Importe Actor de base44:runtime/actors e exporte uma classe que estende Actor como exportação padrão de base44/actors/<actor-name>/entry.ts. O nome da pasta se torna o nome do actor no SDK. Para detalhes de configuração, veja criar um actor.
generic
Tipa as mensagens que o actor recebe dos clientes conectados. Aplica-se ao parâmetro msg de handleMessage().
generic
Tipa as mensagens que o actor envia para os clientes conectados. Aplica-se a conn.send() e broadcast().

API de runtime

Os actors importam a classe Actor do módulo base44:runtime/actors:

Ler secrets

Use secrets.get() para ler as variáveis de ambiente do seu app a partir de um handler. O método retorna o valor como string, ou undefined quando o secret não está definido. Importe secrets do módulo base44:runtime:
Configure secrets pela CLI com secrets set. Recomendamos chamar uma função de backend para trabalhos que precisam de um secret. A função lê o secret e retorna o resultado, então o actor nunca recebe o secret. Para um fluxo de exemplo, veja chamar uma função de backend para trabalhos com secrets.

Handlers de ciclo de vida

A Base44 chama esses handlers em resposta à atividade dos clientes na sessão. Você implementa o corpo de cada um. Saiba mais sobre como actors e clientes interagem. Para um fluxo de exemplo, veja gerenciar conexões de clientes.
method
É executado sempre que uma sessão é ativada, por exemplo:
  • Quando a sessão é criada pela primeira vez.
  • Quando um cliente se conecta a uma sessão inativa.
  • Quando uma mensagem chega em uma sessão inativa.
  • Quando chega um horário agendado.
Retorna void ou uma Promise<void>.
method
obrigatório
É executado quando um cliente se conecta à sessão. Você pode enviar o estado atual da sessão com conn.send() ou recusar a conexão com conn.reject(). Retorna void ou uma Promise<void>.
method
obrigatório
É executado quando um cliente conectado envia uma mensagem. Você pode validar a mensagem antes de alterar o estado da sessão ou acessar os dados do app. Retorna void ou uma Promise<void>.
method
obrigatório
É executado quando um cliente se desconecta. Use este handler para remover qualquer estado da sessão associado ao ID da conexão. Uma reconexão que reutiliza o mesmo ID substitui o socket antigo sem executar handleClose(). Retorna void ou uma Promise<void>.

Handlers e configurações de timers

Esses handlers e configurações controlam o trabalho temporizado na sessão. A Base44 os chama quando chega um horário agendado, não em resposta à atividade dos clientes. Saiba mais sobre trabalho agendado. Para fluxos de exemplo, veja executar ticks e agendar wakes.
method
obrigatório
É executado uma vez por intervalo enquanto shouldTick() retorna true e a sessão tem pelo menos um cliente. Retorna void ou uma Promise<void>.
number
Especifica o intervalo entre ticks em milissegundos. O padrão é 100.
method
Retorna um boolean. Retorne true para manter os ticks da sessão, ou false para interrompê-los. Este método é síncrono.Mantenha este método rápido e sem efeitos colaterais. A Base44 chama este método após cada conexão, mensagem, desconexão e tick.
method
É executado uma vez quando chega um horário definido com schedule(). Retorna void ou uma Promise<void>.
method
Agenda uma execução de handleWake() em um horário especificado. Retorna uma Promise que é concluída depois que a Base44 armazena o agendamento. O agendamento sobrevive a um período de inatividade e pode iniciar uma sessão inativa. Chamar este método novamente com a mesma chave substitui o horário agendado.
method
Cancela o wake agendado associado a uma chave. Retorna uma Promise que é concluída depois que a Base44 remove o agendamento.

Conexões

Estas propriedades e métodos estão disponíveis no objeto conn passado para os handlers de ciclo de vida que envolvem um cliente. Use estas propriedades e métodos para ler a identidade do cliente, enviar mensagens e gerenciar a conexão. Para uma visão geral das mensagens, veja mensagens em tempo real. Para um fluxo de exemplo, veja gerenciar conexões de clientes.
conn é a ponta de backend do WebSocket, e Connection no cliente é a outra ponta do mesmo socket. Use conn na classe do actor. Veja a referência do SDK de actors para o objeto do cliente.
string
Identifica esta conexão. Corresponde ao ID que o cliente passou ao se conectar, ou a um ID gerado pelo SDK.
object
Identifica o cliente nesta conexão. Presente em todas as conexões.
method
Envia uma mensagem para esta conexão. Retorna void.
method
Recusa uma conexão a partir de handleConnect(). Retorna void.
method
Envia uma mensagem para todas as conexões ativas na sessão. Retorna void.
method
Retorna um array dos objetos conn ativos na sessão. Use este método em handleStart() para associar os dados restaurados aos clientes que permaneceram conectados durante um período de inatividade.
string
Propriedade no nível da sessão. Contém o ID de sessão que o cliente usou para acessar esta sessão.

Armazenamento

Use this.storage para ler e gravar dados da sessão. Diferentemente dos campos da classe, o armazenamento sobrevive aos períodos de inatividade. Para escolher entre armazenamento e campos da classe, veja armazenamento. Para um fluxo de exemplo, veja persistir dados da sessão.
method
Recupera um valor pela chave. Retorna uma Promise que resolve para o valor armazenado, ou undefined quando a chave não existe.
method
Salva um valor pela chave. Substitui o valor já armazenado sob a chave. Retorna uma Promise que é concluída quando a gravação termina.
method
Remove um valor pela chave. Retorna uma Promise que resolve para true quando a chave existia, e false caso contrário.
method
Remove todos os dados salvos da sessão. Retorna uma Promise que é concluída quando o armazenamento estiver vazio. Uma conexão posterior começa com o mesmo armazenamento vazio de uma nova sessão.

Acesso a entidades

Use this.client e this.client.asServiceRole para ler e gravar entidades do app dentro de um handler do actor. Para um fluxo de exemplo, veja gravar dados de entidades a partir de uma sessão.
Base44Client
Fornece um cliente do app com escopo para esta sessão. Este cliente usa autenticação anônima, então o acesso às entidades segue as mesmas regras de um cliente não logado, e ele lê dados de produção.
Base44Client
Fornece acesso elevado que ignora a segurança em nível de linha. Valide as mensagens antes de usar este cliente. Torne as gravações seguras para repetição, porque a sessão pode executar um handler novamente após um erro.

Veja também

Esta página foi traduzida usando IA. Para as informações mais precisas e atualizadas, consulte a versão em inglês.