phpwebsocket 一次只有一个连接

发布于 2024-11-14 07:11:15 字数 207 浏览 1 评论 0原文

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

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

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

I am playing with phpwebsocket. Is there a way to have only one user connected at a time?

If a second user tries to connect they should be automatically disconnected and if the first user is idle for a given amount of time he should be disconnected to allow space for a new user.

Is this possible - and if so, does anyone know how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初熏 2024-11-21 07:11:15

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

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

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

It's possible to limit usercount to one user, of course. You have to look at usercount and decide to accept or not new connections. In code it looks like this:

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

You can make a further if statement to check, if usercount is 0, so you accept connection:

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

To disconnect a silent user, i would refresh timestamp of user evertime the user sends a message to server. Now the only thing to do is to check, if diffence between users timestamp and current time is higher then your disconnect time. If so, kick him :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文