2017-03-07 57 views
0

我想创建一个异步套接字服务器来处理套接字客户端,当它需要时发送消息给客户端。我使用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 
+0

尝试在$循环调用之前添加您的代码 – bxN5

回答

0

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

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