Только одно соединение за раз в phpwebsocket - PullRequest
2 голосов
/ 07 июня 2011

Я играю с phpwebsocket .Есть ли способ подключить одновременно только одного пользователя?

Если второй пользователь пытается подключиться, он должен быть автоматически отключен, и если первый пользователь простаивает в течение определенного периода времени, он должен быть отключен от него.оставить место для нового пользователя.

Возможно ли это, и если да, кто-нибудь знает, как?

1 Ответ

1 голос
/ 08 июня 2011

Конечно, можно ограничить количество пользователей одним пользователем. Вы должны посмотреть на учетную запись пользователя и решить, принимать или нет новые подключения. В коде это выглядит так:

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

Чтобы отключить тихого пользователя, я бы обновлял временную метку пользователя, когда пользователь отправляет сообщение на сервер. Теперь единственное, что нужно сделать, это проверить, не превышает ли разница между отметкой времени пользователя и текущим временем ваше время отключения. Если это так, пни его :)

...