могу ли я хранить информацию о сеансе на сервере веб-сокета

У меня есть приложение чата, использующее веб-сокет PHP. и я почти завершил его. теперь, когда обновляю страницу, соединение с сервера прервано, и мне нужно повторно подключиться к нему. и мое требование - как поддерживать сеанс для каждого пользователя, и другая проблема заключается в том, что когда я пытаюсь подключиться к сервер из другой вкладки того же браузера, то создается другое соединение с другим номером порта. если я поддерживаю сеанс, я могу преодолеть его, пожалуйста, помогите мне, как поддерживать сеанс в веб-сокете PHP.


person madan    schedule 28.12.2012    source источник
comment
пожалуйста, не предлагайте использовать кроме php websocket, например, nodejs, socketIO и т. д.   -  person madan    schedule 28.12.2012


Ответы (2)


вы можете отправлять идентификатор сеанса каждый раз, когда отправляете новое сообщение на сервер веб-сокета, и вы можете легко проверить сеанс с идентификатором сеанса. нравится

session_id("your session_id");    
session_start();
if(isset($_SESSION["email/username/id whatever"]) && ($_SESSION["password"])){
keep connected and process request
}
else{
disconnect
}
person Ravinder Payal    schedule 30.05.2014
comment
Я регулярно сталкивался с некоторыми проблемами, и php не является базой событий, поэтому я решил использовать веб-сокет python, а не веб-сокет php, и назначить сеанс объекту веб-сокета python в качестве атрибута. Большое спасибо за ваш ответ - person madan; 31.05.2014
comment
не говоря уже о моей обязанности помочь вам связаться с www.funnenjoy.com/ravinder (это хорошая социальная сеть) - person Ravinder Payal; 31.05.2014

Вам просто нужно запустить сеанс на странице php. Ты можешь использовать

session_start();

а затем просто передайте необходимую переменную в $_SESSION[] (это массив сеанса), после чего вы можете получить к ним доступ, пока не откроете браузер, не отключите вручную массив переменных сеанса или не уничтожите сеанс.

Чтобы отключить сеанс, вы можете использовать

unset($_SESSION['variableName']);

или если вы хотите уничтожить всю сессию, вы можете использовать

session_destroy();
person Tatha    schedule 28.12.2012
comment
спасибо за ответ, но как использовать подключение сеанса с веб-сокетом - person madan; 28.12.2012
comment
Для этого не нужно писать дополнительный код. Сам PHP справится с этим. Вы можете передать объект через массив сеанса в соответствии с обычным соглашением о доступе к массиву. - person Tatha; 31.12.2012