阻止对消息的I / O SQL查询

时间:2019-05-09 14:27:56

标签: swoole

如果任何人都可以帮助解决我的问题,则不确定我是否缺少阻止I / O的基本知识,基本上在下面的代码中,推送是在一个客户端中逐步进行的,这正是我所期望的,但是如果我有两个或多个客户端,“ for睡眠循环”一次执行一个客户端。我希望如果我打开两个或多个客户端,值会同时在所有客户端中显示。我只是不确定在体系结构上如何在Swoole中组织这种代码。

$server = new \swoole_websocket_server("0.0.0.0", 8080, SWOOLE_BASE);

$server->on('message', function (\swoole_websocket_server $_server, \swoole_websocket_frame$frame) {

    for($idx=0; $idx<10; $idx++) {

        // pretend we're doing some blocking process like executing an sql
        sleep(rand(1,2));

        $_server->push($frame->fd, rand(1,10));
    }

});

$server->on('open', function (\swoole_websocket_server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";
});

$server->start();

0 个答案:

没有答案