kotcich
@kotcich
Я скучный.

Возможно ли в websocket'ах до подключения определить кто подключается (любым способом)?

К примеру есть юзер с 2 открытыми браузерами. К сокету идет подключение при заходе на сайт в случаи, если пользователь залогинен.
На обоих браузерах юзер в одном и том же аккаунте и 1 браузер у него уже открыт и сокет установил соединение. Теперь он открывает сайт со 2 браузера и я хочу определить, что он уже подключен, дабы установить соединение со 2 браузера, но чтобы он не считался за нового пользователя. То есть, если на 1 браузера пользователь (или таймер) тригерит событие, которое отправляет сокету на сервер сообщение, а тот в свою очередь ответ, далее на стороне клиента должно сработать событие onmessage сокета. И я хочу, чтобы это сообщение вывелось к примеру в консоли обоих браузеров.
Возможно ли это?
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
Разные браузеры - в общем случае считать подключения как от одного человека - нельзя. Так же нельзя считать один ip адрес как один пользователь, так как есть NAT.

Т.е. тут вопрос идентификации пользователя, если есть возможность авторизации, то проблем нет - каждое новое подключение (браузер или вкладка браузера) - новая сессия, но в сессии хранить идентификатор пользователя, хранить авторизацию же в пределах браузера - в куки.

Если авторизация не используется, придется собирать отпечаток пользователя альтернативными способами (через параметры браузера, железа, установленные шрифты, и т.п.), гуглить: browser fingerprint
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы