2

私はphpwebsocketで遊んでいます。一度に1人のユーザーだけを接続する方法はありますか?

2番目のユーザーが接続しようとすると、自動的に切断され、最初のユーザーが一定時間アイドル状態の場合は、新しいユーザー用のスペースを確保するために切断する必要があります。

これは可能ですか?もしそうなら、誰かがその方法を知っていますか?

4

1 に答える 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 に答える