2012-05-07 43 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 
}); 
相关问题