woole项目在春节前发布了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介绍:
Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于多线程的epoll/kqueue事件循环,bjbzj.codeplex.com;
shbjz.codeplex.com;
tjbjz.codeplex.com;
cqbjz.codeplex.com;
hebbjz.codeplex.com;
jlbjz.codeplex.com;
sybjz.codeplex.com;
dlbjz.codeplex.com;
asbjz.codeplex.com;
jnbjz.codeplex.com;
qdbjz.codeplex.com;
zbbjz.codeplex.com;
dybjz.codeplex.com;
ytbjz.codeplex.com;
wfbjz.codeplex.com;
tybjz.codeplex.com;
xamjz.codeplex.com;
sjzmt.codeplex.com;
tsmt.codeplex.com;
qhdmt.codeplex.com;
lybjz.codeplex.com;
zzmt.codeplex.com;
whmt.codeplex.com;
csbjz.codeplex.com;
wxbjz.codeplex.com;
njbjz.codeplex.com;
szbjz.codeplex.com;
nbbjz.codeplex.com;
hzbjz.codeplex.com;
fzbjz.codeplex.com;
xmbjz.codeplex.com;
kmbjz.codeplex.com;
cdbjz.codeplex.com;
hfbjz.codeplex.com;
gybjz.codeplex.com;
xzbjz.codeplex.com;
ntbjz.codeplex.com;
jsbjz.codeplex.com;
zjbjz.codeplex.com;
yzbjz.codeplex.com;
ncbjz.codeplex.com;
gzbjz.codeplex.com;
szjzb.codeplex.com;
zsbjz.codeplex.com;
stbjz.codeplex.com;
fsbjz.codeplex.com;
lzbjz.codeplex.com;
zhbjz.codeplex.com;
hzmt.codeplex.com;
ycbjz.codeplex.com;
xnbjz.codeplex.com;
whjz.codeplex.com;
czmt.codeplex.com;
bjbjz.codeplex.com;
shmt.codeplex.com;
tjjz.codeplex.com;
cqjz.codeplex.com;
hebjz.codeplex.com;
jljz.codeplex.com;
syjz.codeplex.com;
dljz.codeplex.com;
asjz.codeplex.com;
jnjz.codeplex.com;
qdjz.codeplex.com;
zbjz.codeplex.com;
dyjz.codeplex.com;
ytjz.codeplex.com;
wfjz.codeplex.com;
tyjz.codeplex.com;
xajz.codeplex.com;
sjbjz.codeplex.com;
tsjz.codeplex.com;
qhbjz.codeplex.com;
lyjz.codeplex.com;
zzjz.codeplex.com;
whbz.codeplex.com;
csjz.codeplex.com;
wxjz.codeplex.com;
njjz.codeplex.com;
szjz.codeplex.com;
nbjz.codeplex.com;
hzjz.codeplex.com;
fzjz.codeplex.com;
xmjz.codeplex.com;
kmjz.codeplex.com;
cdjz.codeplex.com;
hfjz.codeplex.com;
gyjz.codeplex.com;
xzjz.codeplex.com;
ntjz.codeplex.com;
jhjz.codeplex.com;
zjjz.codeplex.com;
yzjz.codeplex.com;
ncjz.codeplex.com;
gzjz.codeplex.com;
szgjz.codeplex.com;
zsjz.codeplex.com;
stjz.codeplex.com;
fsjz.codeplex.com;
lzjz.codeplex.com;
zhjz.codeplex.com;
fzmjz.codeplex.com;
ycjz.codeplex.com;
xnjz.codeplex.com;
whmjz.codeplex.com;
czjz.codeplex.com;
是全异步非阻塞的。 业务逻辑部分既可以像node.js一样全异步回调执行,也可以多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。
server 示例代码:
Php代码
< ?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 (接收)