我的任务是设置以下内容。
6个单独的秒表,它们全部相互同步。 他们都需要能够同时开始 他们需要能够单独停止(6人将参加比赛,一人完赛,他们的计时器将停止)。
我认为Web套接字对此是一个好主意,因此计时器可以与服务器同步,我已经跟着this进行设置并使其运行。
我目前正处于可以连接6个人的阶段,还有一个管理页面显示他们的客户数量,以及“启动计时器”按钮。
我创建了这个方法,我认为这会每秒向每个客户端发送当前服务器时间(10秒)。但它不起作用,它会在10秒后立即发送所有10条消息。
private function startTimer() {
for($i = 0;$i < 10;$i++) {
$now = date('H:i:s d-m-Y');
foreach($this->all as $client) {
$client['conn']->send(json_encode(array('action' => 'time', 'time' => $now)));
}
sleep(1);
}
}
那么,1)Web套接字是一个很好的方法吗,或者,Javascript / PHP不适合做这个项目吗? 2)如果Web套接字可以工作,我如何让每个客户端保持同步?
答案 0 :(得分:0)
当我按下开始时,我不是每秒发送一次,而是向每个客户端发送当前服务器时间,然后让他们计算在Javascript中传递的时间。我意识到这可能不是最安全的解决方案,但这只是一个内部使用的小项目,所以它不会被利用。