简介: 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
引用来自“SamZhou”的评论
比较感兴趣的是内存GC方面有没有问题?
引用来自“心中彩虹”的评论
有一个应用场景:数以万计的数传设备(1.5w-2w台以内),需要以tcp方式与server连接,每次数据包大小约为300字节左右,每隔30s上传一次数据包。使用swoole能够满足这类应用需求吗?请大家给指点下!
引用来自“王春生”的评论
比较强悍!很好的项目。
对基于这个框架实现的php版本的webserver比较感兴趣,不知道对实际的应用有什么要求?如果能做到通用的话,未尝不是一种更为简便的部署方式。可以省掉apache, iis或者nginx这些webserver。
引用来自“王春生”的评论
引用来自“熊猫与猫无关”的评论
引用来自“王春生”的评论
比较强悍!很好的项目。
对基于这个框架实现的php版本的webserver比较感兴趣,不知道对实际的应用有什么要求?如果能做到通用的话,未尝不是一种更为简便的部署方式。可以省掉apache, iis或者nginx这些webserver。
引用来自“我喜欢吴佳旻”的评论
这个很屌, 问题是跟nodejs比优势有多少
swoole基于epoll高性能事件轮询,并且是多线程的,性能非常好。
引用来自“熊猫与猫无关”的评论
引用来自“王春生”的评论
比较强悍!很好的项目。
对基于这个框架实现的php版本的webserver比较感兴趣,不知道对实际的应用有什么要求?如果能做到通用的话,未尝不是一种更为简便的部署方式。可以省掉apache, iis或者nginx这些webserver。
引用来自“王春生”的评论
比较强悍!很好的项目。
对基于这个框架实现的php版本的webserver比较感兴趣,不知道对实际的应用有什么要求?如果能做到通用的话,未尝不是一种更为简便的部署方式。可以省掉apache, iis或者nginx这些webserver。
引用来自“matyhtf”的评论
不能exit,另外需要注意对象的生命周期,全局变量和类静态变量要注意,因为不再是每次请求初始化。
引用来自“无糖咖啡”的评论
谁来写个用后感啊 参考下
对基于这个框架实现的php版本的webserver比较感兴趣,不知道对实际的应用有什么要求?如果能做到通用的话,未尝不是一种更为简便的部署方式。可以省掉apache, iis或者nginx这些webserver。