"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como excluir o remetente das transmissões do Socket.IO?

Como excluir o remetente das transmissões do Socket.IO?

Publicado em 2024-11-09
Navegar:400

How to Exclude the Sender from Socket.IO Broadcasts?

Enviando resposta para todos os clientes, exceto o remetente

Para transmitir uma mensagem para todos os clientes conectados, a função io.sockets.emit() é usado. No entanto, quando você deseja excluir o remetente do recebimento da transmissão, você pode se perguntar sobre uma abordagem mais direta do que verificar o ID do remetente no lado do cliente.

Em Socket.IO, a propriedade socket.broadcast fornece uma solução para este cenário. Usando socket.broadcast.emit(), você pode enviar uma mensagem para todos os clientes, exceto o remetente. Aqui está um exemplo:

socket.on('cursor', function(data) {
  socket.broadcast.emit('response', data);
});

Neste exemplo, quando um cliente envia um evento 'cursor', o servidor transmite os dados recebidos para todos os outros clientes conectados, excluindo o remetente.

Aqui está um resumo do Socket .IO emit funções para sua referência:

  • socket.emit(): Envia uma mensagem para o cliente-remetente only.
  • io.emit(): Envia uma mensagem para todos os clientes, incluindo o remetente.
  • socket.broadcast.emit(): Envia uma mensagem para todos os clientes, exceto o remetente.
  • socket.broadcast.to(): Envia uma mensagem para todos os clientes em uma sala ou canal específico, exceto o remetente.
  • socket.to(): Envia um mensagem para o cliente-remetente, somente se ele estiver em uma sala ou canal específico.
  • io.in(): Envia uma mensagem para todos os clientes em uma sala ou canal específico, incluindo o remetente.
  • socket.broadcast.to(socketid): Envia uma mensagem para um ID de cliente específico.
  • io.of(): Envia uma mensagem para todos os clientes em um namespace específico, incluindo o remetente.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3