2011-03-18 54 views
0

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

我有客户端发送它在服务器上的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()); 

然后当我操纵$ _SESSION [“值”]在CLI服务器端它不会反映在客户端会话并且会话不被操纵。我如何使它被操纵的会话发送回客户端?

谢谢!

+0

如何获得$ sessionID ?.我无法使它工作.... CLI会话ID不同于Web会话ID – boyd 2015-02-21 20:50:26

回答

0

有我的代码错误。

会话正在保存中,我只是忽略输出它之前它被改变,所以它看起来像它永远不会改变。

0

你可以写的sessionId用户表DB
,比CLI和Web您必须使用此:

session_id($sessionFromDb); 
+0

否否。我能够获得会议。没关系。但改变它,以便它反映在客户端不起作用 – Neal 2011-03-18 14:34:35

+0

你可以使用这个http://ru.php.net/session_write_close,或者没有权限来写会话文件? – azat 2011-03-18 14:37:28

+0

而且,你确定在Web和CLI sessionId没有区别吗? – azat 2011-03-18 14:38:28