PHP的非同步並行網路擴充swoole如何使用
Swoole是PHP的非同步並行擴充,有點像Node.js,但swoole既支援同步又支援非同步,比node更強大。Swoole擴充是基於epoll高效能事件輪詢,並且是多線程的,效能非常好。
?
Swoole除了提供網路Server/Client的功能之外,還提供了Task非同步工作管理員,可以使你的程式中某些處理慢的函數非同步去執行。
?
本文說下如何使用swoole擴充。
?
第一步 安裝
swoole僅支援Linux/FreeBSD/Mac,如果你使用的是Windows系統,請安裝一個虛擬機器,VirtualBox/VMWare都可以。然後在虛擬機器裡安裝Linux。
?
swoole已經加入到PHP的官方擴充庫中,所以在Linux系統裡只需要執行
?
pecl install swoole
?
即可安裝。安裝完後修改php.ini,加入extension=swoole.so。然後查看php -m 或者 phpinfo,如果出現swoole證明安裝成功了。
?
第二步 編寫Server程式
建立一個PHP指令檔server.php,代碼內容:
?
$serv = new swoole_server("127.0.0.1", 9501);$serv->on('connect', function ($serv, $fd){ echo "Client:Connect.\n";});$serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, 'Swoole: '.$data);});$serv->on('close', function ($serv, $fd) { echo "Client: Close.\n";});$serv->start();
?然後執行:
?
php server.php
?
?使用telnet串連到你的伺服器:
telnet 127.0.0.1 9501> hello world> Swoole: hello world
?
?是不是非常簡單,僅僅11行代碼就建立了一個非同步高並發的TCPServer,通過底層的網路來進行資料收發。接下來就是你就可以做你想要做的事情了,即時聊天,檔案收發,通訊等等。
?
?
?