阅读更多

2顶
0踩

编程语言

 

PHP的高性能异步网络通信框架Swoole已发布 1.8.0 版本,此版本是一个里程碑式新版本,新增了多项新特性、多项核心功能优化以及问题修复、移除了无效的特性。更新内容如下:

客户端

  • 增加原生异步MySQL客户端
  • 增加原生异步Redis客户端,基于Redis官方提供的hiredis库
  • 增加原生异步Http客户端
  • 增加原生异步WebSocket客户端支持
  • 重构底层swClient,异步TCP客户端实现放到swoole内核中
  • 增加swoole_client->reuse属性,SWOOLE_KEEP长连接模式下标识是否为复用的连接

服务器端

  • 重构websocket服务器代码,底层与length_check协议复用相同的处理函数,增强稳定性
  • 增加Task进程对tick/after定时器的支持,底层基于高精度的setitimer+信号实现
  • 保存构造函数中传入的host、port参数到swoole_server对象属性
  • 增加多端口多协议的支持(重要更新)
  • 增加swoole_server->defer函数用于延时执行一些函数
  • 增加swoole_server->close强制切断连接的选项,设置第二个参数会true会清空发送队列并立即切断连接

多端口多协议示例:

$serv = new swoole_server("0.0.0.0", 9501);

$port2 = $serv->listen('127.0.0.1', 9502, SWOOLE_SOCK_TCP);

$port2->set(array(
    'open_length_check' => true,
    'package_length_type' => 'N',
    'package_length_offset' => 0,       //第N个字节是包长度的值
    'package_body_offset' => 4,       //第几个字节开始计算长度
    'package_max_length' => 2000000,  //协议最大长度
));

$port2->on('receive',  function (swoole_server $serv, $fd, $from_id, $data)  {
    echo "ServerPort2\n";
});

$serv->on('connect', function ($serv, $fd, $from_id){
    echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Connect.\n";
});

$serv->on('receive', function (swoole_server $serv, $fd, $from_id, $data) {
    echo "[#".$serv->worker_id."]\tClient[$fd]: $data\n";
    if ($serv->send($fd, "hello\n") == false)
    {
        echo "error\n";
    }
});

$serv->on('close', function ($serv, $fd, $from_id) {
    echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Close.\n";
});

$serv->start();

其他

  • 增加swoole_table对key值的存储,foreach遍历table时可以获取到key值
  • 更改swoole_table的key对比模式,从crc32比对改为直接进行字符串对比
  • 更新utlist.h库到1.9.9版本

swoole_table保存Key值会增加内存占用,如table的size为100万,KEY值存储会增加64M内存占用

问题修复

  • 修复启用消息队列后发生double-free问题
  • 重构定时器,修复aftertick定时器偶然出现的core dump的问题
  • 定时器使用最小堆数据结构,插入/删除时间复杂度为log(N)
  • 修复swoole_process::signal在PHP7下发生core dump的问题
  • 修复swoole_async_write在PHP7下发生core dump的问题

移除特性

  • 移除未支持的特性相关历史遗留代码,如heartbeat_pingdispatch_key_type
  • 移除swoole_server->addtimerswoole_server->deltimerswoole_server->gettimer
  • 移除swoole_timer_addswoole_timer_del
  • 移除swoole_serveronTimer事件
  • 移除task_worker_max配置及相关特性代码
  • 移除swoole_server->handler方法

 

 

2
0
评论 共 1 条 请登录后发表评论
1 楼 shuhen2011 2016-04-04 11:41
支持swoole

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • asp.net 树形目录

    asp.net 树形目录关键词: TreeView                                          TreeView使用集锦     选择自 hgknight 的 Blog  关键字   TreeView 出处      原来在论坛里发过专题帖子,只是由于帖子丢失原因,有些问题找不到了,同时这次也补充了一些,发到文档区以方便查询吧原贴

  • TreeView控件

    [转帖]关于TreeView控件专题 1.下载地址 http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp 安装后,通过“自定义工具箱”->“.net框架组件”把TreeView添加到工具箱里 2.运行时无法显示 一般是Tr

  • [原创]根据TreeView中节点的不同,来绑定不同的dropdownlist

    1.TreeView和DropDownList在一个页面  1<%@ Page Language="vb" AutoEventWireup="false" Codebehind="treeDrp.aspx.vb" Inherits="Ex.treeDrp"%> 2<%@ Register TagPrefix="iewc" Namespace="Micr

  • PHP开源项目大全

    WordPress是最热门的开源个人信息发布系统(Blog)之一,基于PHP+MySQL构建。WordPress提供的功能包括:1.文章发布、分类、归档。 2.提供文章、评论、分类等多种形式的RSS聚合。 3.提供链接的添加、归类功能。 ...

  • Php开源项目大全

    WordPress是最热门的开源个人信息发布系统(Blog)之一,基于...1.文章发布、分类、归档。 2.提供文章、评论、分类等多种形式的RSS聚合。 3.提供链接的添加、归类功能。 4.支持评论的管理,垃圾信息过滤功能。 5...

  • php 开源项目汇总

    文章发布、分类、归档。2.提供文章、评论、分类等多种形式的RSS聚合。3.提供链接的添加、归类功能。4.支持评论的管理,垃圾信息过滤功能。5.支持对样式CSS和PHP程序的直接编辑、修改。6.在Blog系统外,方便的添加所...

  • 比较好的PHP开源项目

    1.文章发布、分类、归档。  2.提供文章、评论、分类等多种形式的RSS聚合。  3.提供链接的添加、归类功能。  4.支持评论的管理,垃圾信息过滤功能。  5.支持对样式CSS和PHP程序的直接编辑、修改

  • PHP

    文章发布、分类、归档。2.提供文章、评论、分类等多种形式的RSS聚合。3.提供链接的添加、归类功能。4.支持评论的管理,垃圾信息过滤功能。5.支持对样式CSS和PHP程序的直接编辑、修改。6.在Blog系统外,方便的添加...

  • PHP开源大全

    1.文章发布、分类、归档。 2.提供文章、评论、分类等多种形式的RSS聚合。 3.提供链接的添加、归类功能。 4.支持评论的管理,垃圾信息过滤功能。 5.支持对样式CSS和PHP程序的直接编辑、修改

  • PHP 开源项目汇总

    WordPress 【PHP开源 博客Blog】WordPress是最...文章发布、分类、归档。 2.提供文章、评...   WordPress 【PHP开源 博客Blog】 WordPress是最热门的开源个人信息发布系统(Blog)之一,基于P

  • PHP开源技术大全(四)

    主要特性: 简单的一步式安装向导 文本、图片以及 swf 文件都存到 SQLite 数据库 两种不同的图片尺寸:原图和缩略图 只需要备份 SQlite 文件即可完成整个系统的备份 Many image filters (require

  • 两周面试突击

    不要被新技术迷惑,所谓万变不离其宗,新技术都是基于java的基础之上,如果基础不扎实,对于这些新技术的理解也是一知半解,学不到根源。 2、做一个java项目在学习完java的基础知识之后,做一个java项目来巩固一下,...

  • 第11讲:深入理解指针(1).pdf

    第11讲:深入理解指针(1)

  • springboot整合 freemarker方法

    springboot整合 freemarker方法

  • 第14讲:深入理解指针(4).pdf

    第14讲:深入理解指针(4)

  • 同行者4.1.2语音助手

    《同行者4.1.2语音助手:车机版安装详解》 在现代科技日新月异的时代,智能车载设备已经成为了汽车生活的重要组成部分。"同行者4.1.2"便是这样一款专为车机设计的语音助手,旨在提供更为便捷、安全的驾驶体验。该版本针对掌讯全系列设备进行了兼容优化,让车主能够轻松实现语音控制,减少驾驶过程中的手动操作,提升行车安全性。 我们来了解下"同行者4.1.2"的核心功能。这款语音助手集成了智能语音识别技术,用户可以通过简单的语音指令完成导航、音乐播放、电话拨打等一系列操作,有效避免了因操作手机或车机带来的分心。此外,其强大的语义理解和自学习能力,使得它能逐步适应用户的口音和习惯,提供更个性化的服务。 在安装过程中,用户需要注意的是,"同行者4.1.2"包含了四个核心组件,分别是: 1. TXZCore.apk:这是同行者语音助手的基础框架,包含了语音识别和处理的核心算法,是整个应用运行的基础。 2. com.txznet.comm.base.BaseApplication.apk:这个文件可能包含了应用的公共模块和基础服务,为其他组件提供支持。 3. TXZsetting.apk:这

  • 市场拓展主管绩效考核表.xls

    市场拓展主管绩效考核表

  • “线上购车3D全方位体验:汽车模型展示与个性化定制功能”,three.js案例- 线上购车3d展示(源码) 包含内容:1.汽车模型展示;2.汽车肤;3.轮毂部件更;4.开关车门动画;5.汽车尺寸测量

    “线上购车3D全方位体验:汽车模型展示与个性化定制功能”,three.js案例- 线上购车3d展示(源码) 包含内容:1.汽车模型展示;2.汽车肤;3.轮毂部件更;4.开关车门动画;5.汽车尺寸测量;6.自动驾驶;7.镜面倒影;8.hdr运用;9.移动端适配; 本为html+css+three.js源码 ,核心关键词:three.js案例; 线上购车3D展示; 汽车模型展示; 汽车换肤; 轮毂部件更换; 开关车门动画; 汽车尺寸测量; 自动驾驶; 镜面倒影; HDR运用; 移动端适配; HTML+CSS+three.js源码。,"Three.js源码:线上购车3D展示案例,含汽车模型、换肤、轮毂更换等九大功能"

  • (数据权威)中国城市_县域统计面板数据二合一

    数据名称:2000-2022年各县市区主要社会经济发展指标面板数据 数据类型:dta格式 数据来源:中国县域统计

Global site tag (gtag.js) - Google Analytics