2016-07-23 54 views
0

我有兩個我在服務器端創建的命名空間。根名稱空間和一個GroupChatEvents名稱空間。Socket.io廣播到客戶端的命名空間

在客戶端,我想向兩個名稱空間廣播一條消息。那可能嗎?

客戶端代碼

var socket = io(); 
var GroupChatEventsSocket = io('/GroupChatEvents'); 

GroupChatEventsSocket.emit和socket.emit都只有發給他們的具體命名空間。我如何廣播到多個特定的命名空間?

感謝

回答

0

沒有能直接播放從客戶端命名空間的能力。相反,您可以創建一條消息,發送給服務器,告訴服務器您要廣播的命名空間,然後在服務器上爲該消息創建一個偵聽器。請記住,webSocket/socket.io中沒有客戶端到客戶端的連接。所有連接都是客戶端到服務器。

所以,如果你想要一些東西發送到另一個客戶端,你必須要求服務器爲你做。無論是發送到單個客戶端還是廣播給連接到特定命名空間的所有客戶端,都是如此。

如何向多個特定命名空間進行廣播?

創建一條消息,您可以發送到服務器,指定消息內容以及您希望發送給它的名稱空間列表。然後,在服務器上實現該消息的偵聽器,以及何時收到可以接收所需消息並將其發送到每個所需的名稱空間的偵聽器。

只要記住,除非你有某種認證方式允許誰做這個,任何人都可以連接到你的服務器並進行這種類型的廣播。