2014-03-19 34 views
0

由於socket.io文檔說,你可以在客戶端腳本使用此代碼加入到namespace服務器側結合的socket.io的命名空間

io.connect('http://localhost'); 

據我所知,一個方法

socket.join('somenamespace'); 
io.of('somenamespace').emit('some-message', { ... }); 

第二執行之後:將一個插座到服務器中的namespace使用類似於下面的代碼沒有設置,但我能夠插座添加到namespace(在服務器)行,connection事件fo r 'somenamespace'被觸發。

爲什麼會發生這種情況?使用這種方法將套接字添加到服務器端的名稱空間是否正確?

是否有在服務器側加入socket到namespace任何正確方法是什麼?

作爲一個說明,我使用socket.io 0.9.14sails 0.9.8

在此先感謝。

回答

1

這不是爲增加插座namespaces的正確方法。如果你已經在你的服務器定義的命名空間爲:

var namespace1 = io.of('/namespace1'); 
namespace1.on('connection', function(socket){ 
    socket.emit('msg',"message"); //only the particular socket from /namespace1 will get 
}); 
    //If you do this 
namespace1.emit('msgToAll', "message"); //everyone in namespace1 will get this message 

然而,房間比命名空間不同。 您可以通過以下方式連接到客戶端的特定命名空間:

io.connect('http://localhost:port/namespace'); 
相關問題