【问题标题】:Use same socket, although sites change使用相同的套接字,尽管站点会发生变化
【发布时间】:2016-03-31 13:34:24
【问题描述】:

我正在将 socket.io 用于网站,并在我的 index.html 和我的 script.js 中建立套接字连接

在 script.js 结束时我调用

window.location = "main.html"

是否可以在 main.html 上保持与 index.html 中相同的套接字连接?

【问题讨论】:

  • 项目中使用了哪种后端语言??
  • 我使用nodejs作为后端

标签: javascript html sockets socket.io


【解决方案1】:

如果是单页面应用程序,在页面之间没有重新加载,那么套接字连接存在,因此套接字连接没有变化。

如果它重新加载然后将下面的代码放在Node JS上,它会重新初始化第一次断开套接字然后再次连接的套接字连接并将所有连接的套接字详细信息保存在clients变量中:

var clients = {};
io.sockets.on('connection', function(socket) {
    socket.on('add-user', function(data) {
        clients[data.user_id] = {
            "socket": socket.id
        };
    });

    //Removing the socket on disconnect
    socket.on('disconnect', function() {
        for (var name in clients) {
            if (clients[name].socket === socket.id) {
                delete clients[name];
                break;
            }
        }
    });
});

【讨论】:

猜你喜欢
  • 2018-05-25
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
相关资源
最近更新 更多