当我登录我的网站时,会话中有3个项目设置为
$_SESSION['language'] = 'US';
$_SESSION['account'] = array();
$_SESSION['account']['id'] = 1;
$_SESSION['account']['session'] = session_id()
然后,当我进入管理面板并执行$ _SESSION的var_dump()时,会显示te会话中的所有3个项目。到目前为止一切都很好。
但是当我连接到我自己创建的websocket服务器时,它会读取$ _SESSION ['language']但它无法读取
$ _ SESSION [ '帐户']
所以我正在做的事情:连接到websocket流时,在标题中发送cookie(PHPSESSID)。然后就在握手之前,我使用了下面的代码,它只是var_dumping“语言”而不是“帐户”
if (preg_match("/PHPSESSID=(.*?)(?:;|\r\n)/", $data, $match))
{
session_id($matches[1]);
var_dump($_SESSION);
session_write_close();
}
所以要写一个简短的故事:它会读取$ _SESSION ['language'],但在握手之前找不到$ _SESSION ['account']。有人知道更多吗? (而且我确信这些会议已经启动,并且它们不会在某处破坏)