phpwebsocket中一次只有一个连接

时间:2011-06-06 20:06:55

标签: php websocket phpwebsocket

我正在玩phpwebsocket。有没有办法一次只连接一个用户?

如果第二个用户尝试连接,则应自动断开连接,如果第一个用户闲置一段时间,则应断开连接,以便为新用户留出空间。

这可能 - 如果是的话,有人知道怎么做?

1 个答案:

答案 0 :(得分:1)

当然,可以将用户数限制为一个用户。您必须查看usercount并决定是否接受新连接。在代码中它看起来像这样:

if($socket==$master){
  $client=socket_accept($master);
  if($client<0){ console("socket_accept() failed"); continue; }
  else{ connect($client); }
}

如果usercount为0,您可以进一步检查if语句,以便接受连接:

if($socket==$master){
  if(count($users) == 0){
    $client=socket_accept($master);
    if($client<0){ console("socket_accept() failed"); continue; }
    else{ connect($client); }
  }
}

要断开静默用户,我会刷新用户的时间戳,用户会向服务器发送消息。现在唯一要做的就是检查用户时间戳和当前时间之间的差异是否高于断开连接时间。如果是这样,踢他:))