2012-05-07 42 views
0

我想用簡單的註銷和登錄創建一個簡單的應用程序。登錄時,我正在加入房間,同時註銷時將使用socket.leave('room')離開房間;不能在同一頁面中第二次執行Socket.on('connect',function(){})

問題是,如果我再次登錄同一頁面而不刷新,socket.on('connect',...)中的代碼沒有執行。請幫我解決這個問題

+1

考慮將其更改爲「在加入」什麼的(自定義消息)。 connect連接到websockets後端時由socket.io的基礎結構使用connect。 –

+0

需要一些代碼才能正確回答! – drinchev

回答

0

就像Jakub說的那樣,'connect'事件在客戶端連接到服務器而不是加入房間時觸發。客房是連接頂部的額外名稱空間。如果你想在每次有人加入時執行代碼,最簡單的方法是在調用socket.join('whatever')之後運行代碼。

有點棘手,雖然也許更多的解決方案是附加某種處理程序加入房間。如果你可以做socket.on('join', fn),但我不確定是否可以。如果它不工作,你應該能夠通過後端認購,這樣的事情可能工作:

socket.manager.store.subscribe('join', function (id, room) { 
    //do whatever 
}); 
相關問題