c++ - 如何处理多个 websocket++ 选项卡/窗口?

标签 c++ websocket sessionid browser-tab websocket++

我正在尝试创建一个使用 websocket++ 作为其“总 Backbone ”的网站,我刚刚意识到如果用户打开多个选项卡/窗口,我可能会进退两难。

我正在写 spa样式,其中所有 html 和大多数 css 和 js 都预先加载,每当用户单击像上面的堆栈链接之一这样的链接时,它只会滑走旧的 div 并滑入新的。使用 ajax 很容易做到这一点,但是任何 100% 使用 ajax 的人都知道不断更新的 hell 。

Websockets 和 websocket++ 使自动更新和用户跟踪变得容易,但我不知道如何处理用户不喜欢我所有的 spa 编程并想要另一个选项卡/窗口 lol 的情况。

如果用户打开另一个选项卡/窗口,websocket++ 会自动为该选项卡/窗口分配另一个connection_hdl吗?如果是这样,我如何确保用户登录到新选项卡/窗口?如果没有,我如何分离每个选项卡/窗口的用户跟踪?

最佳答案

与 WebSocket++ 服务器的每个连接都将获得自己唯一的 connection_hdl。如果您从一个应用程序或多个选项卡/窗口/计算机中的同一应用程序打开两个 WebSocket,就会发生这种情况。

将给定的连接与用户相关联是一个非常宽泛的问题。简而言之,与非 websocket 方法一样,您需要为每个连接向服务器发送用户名/密码或 session token 。如果您想在不同的选项卡/窗口之间实现类似单点登录的效果,您可以使用浏览器的持久客户端存储(cookie、本地存储等)来存储这些 session token 。

关于c++ - 如何处理多个 websocket++ 选项卡/窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725376/

相关文章:

java - 为每个请求分配新 session ID 的良好做法?

c++ - QT串口发送一个字节

c++ - 从 Windows 在 C++ 中获取系统环境

c++ - 如何使用 Protocol Buffers 创建动态消息?

c++ - 如何在没有 if 语句的情况下从最小到最大对一组整数进行排序?

Javascript WebSocket 未连接

php - session ID 在 CodeIgniter 中发生变化

security - 我使用 guid 作为我的 Web 应用程序的 session ID,安全吗

javascript - 使用 CSS/HTML/Javascript 的 Web 应用程序创建工具链

java - 在 Spring-Boot 中从 websocket 接收数据时调用服务时遇到问题