我知道这个问题在几次之前就被问过了。我按照这些问题的答案,但我面临的问题仍然存在。
简单地说,我想从WebSocket服务器中的会话变量中获取用户名。根据我的理解,我需要获取会话ID并将其发送到每个消息的套接字。使用id读出会话。
发送会话ID:studentId
我确保this.socket.send('JOIN '+sessionID);
包含正确的ID。这很好。
这是WebSocket服务器PHP的重要部分:
sessionID
问题是,它仍然只适用于加入服务器的第一个用户。任何其他用户将被拒绝连接,因为用户名已经在线。
我错过了什么吗?
编辑:我已经让服务器返回<?php
$message = explode(' ', $message);
$command = array_shift($message);
if ($command == 'JOIN') {
session_id(trim($message[0]));
session_start();
$username = $_SESSION['username'];
?>
以确保它获得正确的会话ID并返回预期的内容。 (它为每个尝试连接的用户返回不同的id。)
答案 0 :(得分:1)
PHP保持会话锁定,以防止并发写入,直到脚本结束或使用session_write_close
手动关闭。
因为WebSocket服务器应该永远运行,所以你需要手动完成。