如何使用php创建异步套接字服务器?
问题描述:
我想创建一个异步套接字服务器来处理套接字客户端,当它需要时发送消息给客户端。我使用reactphp library来实现它,但我不能做到正确,我的服务器仍然被阻止。我是这个图书馆的新成员,请帮忙。如何使用php创建异步套接字服务器?
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
答
$loop->run();
运行事件循环,除非停止循环,否则不会返回。循环是您的调度程序,并在发生事件时调用您的事件处理程序。
如果您想对事件做出反应,则必须在运行循环之前注册事件侦听器。
尝试在$循环调用之前添加您的代码 – bxN5