2

我正在为我的项目在 php 中实现 web-socket 服务器。当用户创建 websocket 连接时,它会将请求标头中的 PHPSESSID cookie 发送到 web 服务器页面。我想使用他们的 PHPSESSID cookie 值为每个用户获取会话数据。此服务器页面无法通过简单地使用来获取会话值$_SESSION['name']

对于每个传入的套接字连接,我获取 PHPSESSID

$cookie = handshake($header, $socket_new, $host, $port);

这里握手函数将返回 PHPSESSID cookie。

session_id($cookie);
session_start();
$username = $_SESSION['name'];

对于每个 websocket 连接,我都会收到正确的 cookie,但$username仅适用于第一个连接。这个 php 文件在后台运行,我必须使用他们的 cookie 对用户进行身份验证,但似乎session_id($cookie);只设置了一次。有没有办法在这个单一页面上获取不同 PHPSESSID 值的会话数据。

4

1 回答 1

0

正如@grossvogel 提到的,session_write_close()仅在函数之前使用session_id()函数使我能够使用 PHPSESSID cookie 获取不同会话的值。现在我可以在单个页面中使用不同的会话

于 2014-07-14T18:33:23.980 回答