如何处理多个websocket ++标签/窗口?

时间:2013-03-31 01:24:09

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

我正在尝试创建一个使用websocket ++作为其总骨干的网站,我刚刚意识到,如果用户打开多个标签/窗口,我可能会陷入两难境地。

我正在编写spa样式,所有html和大多数css& js是预先加载的,每当用户点击上面的一个堆栈链接之类的链接时,它只会滑动旧的div并在新的幻灯片中滑动。使用ajax很容易,但任何100%ajax的人都知道不断更新的地狱。

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

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

1 个答案:

答案 0 :(得分:2)

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

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