从CLI到浏览器共享会话ID

时间:2011-03-18 14:25:06

标签: php session sessionid websocket phpwebsocket

我有一个从浏览器连接的websocket连接到在CLI上作为websocket服务器运行的php脚本。

我让客户端发送它在服务器上的session_id我知道哪个用户有哪个会话。

完美地阅读各个用户的$ _SESSION。

我(在服务器端[我的CLI代码]):

$sess_ini = ini_get('session.save_path');
$save = file_get_contents("$sess_ini/sess_$sessionID");
session_id($sessionID);
$sessions = explode("|",$save);
$_SESSION['values'] = (isset($sessions[1])?
                        unserialize(trim(urldecode($sessions[1]))):array());

然后,当我在CLI服务器端操作$ _SESSION ['values']时,它不会反映在客户端会话上,并且不会操纵会话。我该怎么做才能将被操纵的会话发送回客户端?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以将sessionId写入DB中的users表 而且在CLI和Web中你必须使用它:

session_id($sessionFromDb);

答案 1 :(得分:0)

我的代码出错了。

会话正在保存,我只是忽略了它在更改之前输出它所以它看起来好像从未改变过。