每1秒发送一次WebSocket消息

时间:2014-05-30 13:18:03

标签: javascript php sockets

我的任务是设置以下内容。

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套接字可以工作,我如何让每个客户端保持同步?

1 个答案:

答案 0 :(得分:0)

当我按下开始时,我不是每秒发送一次,而是向每个客户端发送当前服务器时间,然后让他们计算在Javascript中传递的时间。我意识到这可能不是最安全的解决方案,但这只是一个内部使用的小项目,所以它不会被利用。