PHP異步高并發擴展swoole-1.6.10版發布

jopen 10年前發布 | 8K 次閱讀 PHP

簡介: 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&nbsp;//server.php
$serv&nbsp;=&nbsp;new&nbsp;swoole_server("0.0.0.0",&nbsp;9501);
$serv->set(array(
&nbsp;&nbsp;&nbsp;&nbsp;'worker_num'&nbsp;=>&nbsp;2,
&nbsp;));
$serv->on('connect',&nbsp;function&nbsp;($serv,&nbsp;$fd){
&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"Client:Connect.\n";
});
$serv->on('receive',&nbsp;function&nbsp;($serv,&nbsp;$fd,&nbsp;$from_id,&nbsp;$data)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;$serv->send($fd,&nbsp;'Swoole:&nbsp;'.$data);
&nbsp;&nbsp;&nbsp;&nbsp;$serv->close($fd);
});
$serv->on('close',&nbsp;function&nbsp;($serv,&nbsp;$fd)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"Client:&nbsp;Close.\n";
});
$serv->start();
?>
php&nbsp;server.php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//運行
telnet&nbsp;127.0.0.1&nbsp;9501&nbsp;&nbsp;//連接server
hello&nbsp;&nbsp;(發送)
Swoole:&nbsp;hello&nbsp;(接收)
GitHub地址:https://github.com/matyhtf/swoole

官網:http://www.swoole.com

pecl地址: http://pecl.php.net/package/swoole

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!