问题描述
我在玩PHPwebsocket。有没有办法一次只连接一个用户?
如果第二个用户尝试连接,则应自动断开连接,如果第一个用户空闲了给定的时间,则应断开连接,以便为新用户留出空间。
这可能吗?如果是这样,有人知道吗?
解决方法
当然,可以将用户数限制为一个用户。您必须查看usercount并决定接受还是不接受新连接。在代码中,它看起来像这样:
if($socket==$master){
$client=socket_accept($master);
if($client<0){ console(\"socket_accept() failed\"); continue; }
else{ connect($client); }
}
您可以进一步进行if语句检查,如果usercount为0,那么您接受连接:
if($socket==$master){
if(count($users) == 0){
$client=socket_accept($master);
if($client<0){ console(\"socket_accept() failed\"); continue; }
else{ connect($client); }
}
}
要断开静默用户的连接,每当用户向服务器发送消息时,我都会刷新用户的时间戳。现在,唯一要做的就是检查用户时间戳和当前时间之间的差异是否大于断开时间。如果是这样,踢他:)