Как обрабатывать несколько вкладок / окон Websocket++?

Я пытаюсь создать сайт, который использует websocket++ в качестве его общей основы, и я только что понял, что у меня может быть дилемма, если пользователь открывает несколько вкладок / окон.

Я пишу в стиле спа, где все html и большинство css & js загружаются заранее, и всякий раз, когда пользователь щелкает ссылку, например, одну из ссылок в стеке, она просто убирает старые div и скользит по новой. Это легко с ajax, но любой, кто делает 100% Ajax, знает адское постоянное обновление.

Websockets и websocket++ упрощают автообновление и отслеживание пользователей, но я не знаю, как справиться с ситуацией, когда пользователь не ценит все мои программы программирования spa и хочет еще одну вкладку / окно.

Если пользователь открывает другую вкладку / окно, Websocket ++ автоматически назначит другую вкладку / окно connection_hdl? Если так, как я могу гарантировать, что пользователь вошел в новую вкладку / окно? Если нет, как я могу отделить отслеживание пользователей для каждой вкладки / окна?

1 ответ

Решение

Каждое соединение с сервером WebSocket++ получит свой уникальный connection_hdl, Это произойдет, если вы откроете два WebSocket из одного приложения или одного и того же приложения в нескольких вкладках / окнах / компьютерах.

Связать данное соединение с пользователем - довольно широкий вопрос. Короче говоря, как и в случае методов без веб-сокетов, вам нужно будет отправлять имя пользователя / пароль или токен сеанса на сервер для каждого соединения. Если вам нужен эффект единого входа между различными вкладками / окнами, вы можете использовать постоянное клиентское хранилище (куки, локальное хранилище и т. Д.) Браузера для хранения этих токенов сеанса.

Другие вопросы по тегам