【发布时间】:2017-12-14 13:12:46
【问题描述】:
我知道这个问题已经被问过几次了。我遵循了这些问题的答案,但我面临的问题仍然存在。
简单地说,我想从 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)。
【问题讨论】:
-
之后使用
session_write_close关闭会话? -
@gre_gor OMG,实际上似乎已经解决了!请将该评论转化为答案。你已经赢得了一些声望!