我正在尝试创建一个简单的注销和登录的简单应用程序。登录时我正在加入房间,当我退出房间时使用socket.leave('room');
问题是,如果我在没有刷新的情况下再次登录同一页面,则socket.on('connect',...)内的代码不会执行。请帮我解决这个问题
答案 0 :(得分:0)
就像Jakub说的那样,当客户端连接到服务器而不是加入房间时,会发生'connect'事件。房间是连接顶部的额外命名空间。如果您想在每次有人加入时执行代码,最简单的方法就是在socket.join('whatever')
调用之后运行该代码。
有点棘手,但也许更具包容性的解决方案是附加某种处理程序来加入一个房间。如果你可以做socket.on('join', fn)
但是试一试,我不确定。如果它不起作用,你应该能够通过后端订阅,这样的东西可能会起作用:
socket.manager.store.subscribe('join', function (id, room) {
//do whatever
});