5

私はラチェットphpを使用しています。私はこのように始めています:

$loop    = \React\EventLoop\Factory::create();
$webSock = new \React\Socket\Server($loop);

$webSock->listen($this->port, $this->host);

$webServer = new \Ratchet\Server\IoServer(
    new \Ratchet\Http\HttpServer(
        new \Ratchet\WebSocket\WsServer(
            new PusherServer()
        )
    ),
    $webSock
);

return $loop;

さて、onMessage()私のPusherserverクラス ( を実装するMessageComponentInterface) で、長いブロッキング タスクを実行したいと考えています。これは、完了するまでに最大 10 秒かかる HTTP 要求になります。

onMessage()前の HTTP リクエストの実行中に他のリクエストを自由に処理するにはどうすればよいですか? すでに与えられているphpバージョンを変更するアクセス権がないため、pthreadsを使用できません(これはスレッドセーフです)。

4

1 に答える 1