【问题标题】:Node.js Socket.io redirect user to other page after joining a room加入房间后,Node.js Socket.io 将用户重定向到其他页面
【发布时间】:2015-07-28 20:05:50
【问题描述】:

加入房间后如何重定向

socket.on('connect_to_room', function(data, ackno) {
            socket.room_id = data['room'];
            socket.user_name = data['username'];
            socket.join(socket.room_id);
            users.push({ socket : {'socket_id' : socket.id, 'room_id':socket.room_id, 'username': socket.user_name}});
            redirect('/termsandconditions');
        });

加载页面调用

 app.get("/termsandconditions", function(req, res){
                res.render(__dirname+ "/termsandconditions.html",{"termdata": terms});
    });

这是 Coorect 吗?我在这里错过了什么?

【问题讨论】:

  • 你用什么前端库?
  • 我很好奇你想要实现什么,因为一旦你重定向客户端,刚刚加入房间的套接字将立即断开。
  • @jfriend00 如果您提供我可以消除疑虑的网站链接,那将非常有帮助。我在谷歌上搜索了几个小时,但找不到解决方案。
  • 清除您对什么的疑虑?我已经简单解释了,一旦客户端重定向,来自前一个页面的 webSocket 将断开连接,因为该页面不再显示在浏览器中(您已重定向到新页面)。

标签: jquery node.js socket.io


【解决方案1】:

您需要通过 socket.io 向用户发送一条消息。您处理客户端的此消息并在那里重定向用户。 不过要小心,像普通 HTTP 重定向一样重定向用户会中断 websocket 连接。更好的选择是像单页应用程序一样处理它并在客户端更改状态。

【讨论】:

  • 谢谢@emilInferslev 好的。现在我知道我必须从客户端重定向用户。但是不理解“像单页应用程序一样处理它并在客户端更改状态”。很抱歉问了一些愚蠢的问题,我是 Node.js 和 socket.io 的新手。
  • 没有愚蠢的问题 :) 你熟悉 react 还是 AngularJS?
  • 好的,有了 jQuery 和 JavaScript,它将使用它,而无需移动到另一个页面。就像从 websocket 和 $('body').html("<div>Room " + message + "</div>") 获取消息一样。
猜你喜欢
  • 1970-01-01
  • 2015-05-29
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多