如何使用php创建异步套接字服务器?

时间:2017-03-07 09:50:22

标签: php sockets asynchronous reactphp

我试图创建一个异步套接字服务器来处理套接字客户端,在需要时向客户端发送消息。我使用reactphp library来实现它,但我无法正确执行,我的服务器仍然被阻止。我是这个图书馆的新手,请帮助。

require 'vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);
$socket->on('connection', function ($conn) {
    $conn->pipe($conn);
});
echo "Socket server listening on port 4000.\n";
echo "You can connect to it by running: telnet localhost 4000\n";
$socket->listen(4200);
$loop->run();


// code bottom doesn't run because of blocking socket

1 个答案:

答案 0 :(得分:1)

$loop->run();运行事件循环,除非停止循环,否则永远不会返回。循环是您的调度程序,并在事件发生时调用您的事件处理程序。

如果要对事件做出反应,则必须在运行循环之前注册事件侦听器。