2

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

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

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

4

1 回答 1

1

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

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); }
  }
}

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

于 2011-06-08T07:16:33.737 回答