2017-03-07 98 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();運行事件循環,除非停止循環,否則不會返回。循環是您的調度程序,並在發生事件時調用您的事件處理程序。

如果您想對事件做出反應,則必須在運行循環之前註冊事件偵聽器。