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 classeActor é 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
ImporteActor 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 classeActor do módulo base44:runtime/actors:
Ler secrets
Usesecrets.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:
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.
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 objetoconn 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
Usethis.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
Usethis.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
- Visão geral de actors: Conceitos e terminologia
- Actors: fluxos de exemplo: Ciclo de vida, timers, conexões, armazenamento, entidades e funções de backend
- Referência do SDK de
actors: API do SDK do cliente secrets set: Configure variáveis de ambiente pela CLI
Esta página foi traduzida usando IA. Para as informações mais precisas e atualizadas, consulte a versão em inglês.