PHP异步高并发扩展Swoole


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代码

<?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  //连接serverhello  (发送)Swoole: hello (接收)

自己多多测试一下吧。很有用的。

优质内容筛选与推荐>>
1、NSMutableString 常用操作
2、how to test observe with rspec in ruby on rails.
3、[HIHO]DIvide Product
4、HDU--3440(差分约束)
5、c# 扩展方法


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号