node.js - 如何保持从一个窗口到另一个窗口的套接字连接处于事件状态?

标签 node.js sockets socket.io chat mean-stack

我对 socket.io 相当陌生,但我真的很喜欢陷入其中。我正在使用 MEAN 堆栈并开始使用 socket.io。我发现套接字连接已连接到窗口,因此当刷新完成后,连接就死了。

话虽如此,我正在尝试实现一个简单的聊天功能,类似于他们在 socket.io 入门选项卡上显示的功能,相当简单。但是,在我单击此聊天按钮之前,我的连接已创建。我希望聊天窗口在新窗口中打开,并为之前连接的个人提供聊天。这可能吗?我如何实现这样的功能?

我确实是从规划的角度来询问的,所以不要在这里发布我的代码。我的代码与 Hello World socket.io 聊天应用程序非常相似,但我只想保持从一个窗口到下一个窗口的连接。

最佳答案

当您将新页面加载到该窗口时,您无法保持套接字连接打开。连接属于特定页面,当该页面不再事件时,它会关闭套接字并由浏览器清理(以及所有其他 HTML/JS 资源)。您的新页面应该再次打开套接字,您可以使用某种 cookie 来将新连接识别为同一用户。

另一种策略是不加载新窗口并使用 Ajax 将新内容加载到当前窗口中。这将允许您保持当前套接字处于事件状态。

关于node.js - 如何保持从一个窗口到另一个窗口的套接字连接处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33457942/

相关文章:

javascript - nodejs - csvtojson 未在输出中给出正确的 json 键

javascript - socket.io 重新连接 socket.socket.connect 不起作用

node.js - ACL 最佳实践,在用户对象中存储角色,还是单独的表/集合?

javascript - 在 Linux CentOs 上运行 node.js 服务器

Python 套接字 - "blocking"套接字操作到底是什么?

php - PHP-如何读取最多EOF-套接字资源?

php - 通过HTTP下载文件时减少CPU使用率

javascript - 拼接后Javascript覆盖数组索引

node.js - localtunnel 和 CORS 无法正常工作

javascript - 如何直接在Sequelize中更改预加载的结果