Php 在WebSocket服务器中获取会话

Php 在WebSocket服务器中获取会话,php,session,websocket,Php,Session,Websocket,我知道这个问题已经被问过好几次了。我遵循这些问题的答案,但我面临的问题仍然存在 简单地说,我想从WebSocket服务器内的会话变量中获取用户名。据我所知,我需要获取会话id,并将其与每条消息一起发送到套接字。使用id读取会话 发送会话id:this.socket.send('JOIN'+sessionID) 我已确保sessionID包含正确的id。这可以正常工作 这是WebSocket服务器PHP的重要部分: <?php $message = explode(' ', $messag

我知道这个问题已经被问过好几次了。我遵循这些问题的答案,但我面临的问题仍然存在

简单地说,我想从WebSocket服务器内的会话变量中获取用户名。据我所知,我需要获取会话id,并将其与每条消息一起发送到套接字。使用id读取会话

发送会话id:
this.socket.send('JOIN'+sessionID)
我已确保
sessionID
包含正确的id。这可以正常工作

这是WebSocket服务器PHP的重要部分:

<?php

$message = explode(' ', $message);
$command = array_shift($message);

if ($command == 'JOIN') {
    session_id(trim($message[0]));
    session_start();

    $username = $_SESSION['username'];
?>

问题是,它仍然只适用于第一个加入服务器的用户。任何其他用户都将被拒绝连接,因为用户名已联机

我错过什么了吗


编辑:我已经让服务器返回
$message[0]
,以确保它获得正确的会话id,并返回预期的内容。(它为每个尝试连接的用户返回不同的id)。

PHP会锁定会话,以防止并发写入,直到脚本结束或手动关闭


而且,由于WebSocket服务器应该永远运行,因此您需要手动执行此操作。

之后,请使用“@gre_gor OMG”关闭会话,这似乎解决了问题!请把那个评论变成一个答案。你已经赢得了一些声誉!