Sign inGet started

Excluindo destinatários de eventos

Se um cliente aplica uma alteração de forma otimista antes de o servidor publicá-la, receber o mesmo evento pode aplicar a alteração duas vezes. Isso pode causar uma oscilação visual ou um item duplicado.
Passe o ID de conexão do cliente que realizou a ação para entregar o evento a todas as outras conexões inscritas.
await bird.realtime.publish(appId, {
  event: "message.created",
  channels: ["presence-room-1"],
  data: { body: "hello" },
  exclude_connection_id: "26896.319537",
});

Obter o ID de conexão

O cliente lê seu ID de conexão e o envia junto com a solicitação que dispara a alteração:
const bird = new BirdRealtime({ appKey: "your-app-key", region: "us1" });

await fetch("/messages", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    body: "hello",
    connection_id: bird.connection.connectionId,
  }),
});
O ID é null até que a conexão seja estabelecida, e muda após uma reconexão. Leia bird.connection.connectionId no navegador ou bird.connectionId em Swift e Kotlin ao fazer a solicitação.
Passe o valor para exclude_connection_id após validá-lo como dado de solicitação não confiável. Esse campo pode suprimir a entrega para uma conexão, mas não pode conceder acesso a um evento.

Comportamento da conexão excluída

Apenas a conexão indicada é excluída. As outras abas da mesma pessoa usam conexões separadas e ainda recebem o evento.
Excluir um ID de conexão que não está inscrito, ou que não existe mais, não é um erro. A publicação é entregue normalmente para todos os outros.

Quando omitir a exclusão

Use a exclusão para interfaces otimistas. Se o cliente espera pelo evento antes de aplicar uma alteração, não o exclua. Caso contrário, a aba que realizou a ação permanece desatualizada.

Próximos passos