php异步扩展任务,PHP异步高并发扩展Swoole-PHP技术-大神部落

php的优势不在说了。swole可能有些人还是是太熟悉,这也是php的一大革新。

下面来介绍一下。

GitHub地址:https://github.com/matyhtf/swoole

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

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

swoole项目在春节前发布了1.6.10版本。

内核更新:

Enabled by defaultasync_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事件循环,是全异步非阻塞的。 业务逻辑部分既可以像node.js一样全异步回调执行,也可以多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。

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 (接收)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值