在phpwebsocket中一次只有一个连接

Posted

技术标签:

【中文标题】在phpwebsocket中一次只有一个连接【英文标题】:Only one connection at a time in phpwebsocket 【发布时间】:2011-06-06 20:06:54 【问题描述】:

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

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

这可能吗?如果可以,有人知道怎么做吗?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于在phpwebsocket中一次只有一个连接的主要内容,如果未能解决你的问题,请参考以下文章

如何使用java代码在单个数据库中一次连接多个模式

PHP websocket服务器和mysql连接

如何在chrome中一次打开多个标签? [复制]

go中一次处理许多GET请求

有没有办法在 SQL Server CE 中一次搜索所有表的字段?

phpwebsockets yii 实现