PHP異步高并發擴展swoole-1.6.10版發布
簡介: swoole是一個php版本的異步、高并發擴展,是國人被php官方pecl包收錄的力作之一。
swoole項目在春節前發布了1.6.10版本:
內核更新:
- Enabled by default async_mysql (5.4版本默認開啟async_mysql特性)
- UDP send no require from_id (udp 發送不包含 from_id)
- Add last_time and connect_time to tcp connection_info (連結信息添加屬性:連接時間和最后消息到達時間)
- Add tcp heartbeat mechanism (內置tcp心跳檢測模塊)
- rebuild data_buffer (重構了data_buffer)
client模塊:
- swoole_client on::Receive and on::Close no need to call recv/close (Receive和Close不需要相應的回調)
php方法變更:
- add heartbeart()方法 (swoole_server_heartbeart() or $serv->heartbeat())(手動進行心跳檢測)
配置變更:
- add heartbeat_idle_time (心跳最大空閑時間)
- add heartbeat_check_interval (心跳定時檢測時間)
擴展介紹:
Swoole
是一個PHP的C擴展,可用來開發PHP的高性能高并發TCP/UDP
Server。Swoole的網絡IO部分基于多線程的epoll/kqueue事件循環,是全異步非阻塞的。
業務邏輯部分既可以像node.js一樣全異步回調執行,也可以多進程同步阻塞方式來運行。這樣既保證了Server能夠應對高并發和大量TCP連接。
又保證業務代碼仍然可以簡單的編寫。
server 示例代碼:
<?php //server.php
$serv = new swoole_server("0.0.0.0", 9501);
$serv->set(array(
'worker_num' => 2,
));
$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->close($fd);
});
$serv->on('close', function ($serv, $fd) {
echo "Client: Close.\n";
});
$serv->start();
?>
php server.php //運行
telnet 127.0.0.1 9501 //連接server
hello (發送)
Swoole: hello (接收)GitHub地址:https://github.com/matyhtf/swoole官網:http://www.swoole.com
pecl地址: http://pecl.php.net/package/swoole