首頁  >  文章  >  web前端  >  如何從 Socket.IO 廣播中排除發送者?

如何從 Socket.IO 廣播中排除發送者?

Barbara Streisand
Barbara Streisand原創
2024-10-31 02:02:29232瀏覽

How to Exclude the Sender from Socket.IO Broadcasts?

向發送者以外的所有客戶端發送回應

要向所有連接的客戶端廣播訊息,io.sockets. emit() 函數是用過的。但是,當您想要排除發送者接收廣播時,您可能想知道比在用戶端檢查發送者 ID 更直接的方法。

在 Socket.IO 中,socket.broadcast 屬性提供了針對這種情況的解決方案。透過使用socket.broadcast.emit(),您可以向除發送者之外的所有用戶端發送訊息。這是一個範例:

<code class="javascript">socket.on('cursor', function(data) {
  socket.broadcast.emit('response', data);
});</code>

在此範例中,當客戶端發送「遊標」事件時,伺服器將收到的資料廣播到所有其他連線的用戶端,不包括傳送者。

這裡是Socket.IO 發出函數的總結供您參考:

  • socket.emit():僅向發送者客戶端發送訊息。
  • io.emit():發送向所有客戶端(包括發送者)發送訊息。
  • socket.broadcast.emit():傳送訊息給除發送者以外的所有客戶端。
  • socket.broadcast.to():發送向特定房間或頻道中除發送者之外的所有客戶端發送訊息。
  • socket.to():僅當發送者用戶端位於特定房間或頻道中時才發送訊息給發送者用戶端。
  • io.in():向特定房間或頻道中的所有客戶端發送訊息,包括發送者。
  • socket.broadcast.to(socketid):傳送訊息至特定客戶端 ID。
  • io.of():向特定命名空間中的所有客戶端發送訊息,包括發送者。

以上是如何從 Socket.IO 廣播中排除發送者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn