分类分类
大小:2.34 MB 更新:2021/02/02
类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll
Swoole可以提升HTTP、TCP服务性能,如果你制作的系统请求服务比较频繁就可以选择这款软件提升通信性能,将软件部署到开发程序就可以在配置服务器的时候通过这款软件编辑服务器请求服务方案;该软件提供很多编译选项,支持通用参数、特殊参数、Debug参数、PHP编译参数,您可以根据不同的服务请求项目配置新的参数,软件可以结合TCP服务器、UDP服务器、HTTP服务器、WebSocket服务器、MQTT(物联网)服务器、执行异步任务(Task)使用,官方附加了详细的教程,让用户在开发新应用程序的时候获得更好的服务请求性能,如果你需要这款软件就下载吧!
通讯编程
Swoole是一个C++编写的基于异步事件驱动和协程的并行网络通信引擎,为PHP提供高性能网络编程支持
事件驱动
Swoole中的网络请求处理是基于事件的,并且充分利用了底层的epoll / kqueue实现,使得为数百万个请求提供服务变得非常容易。
Swoole4使用全新的协程内核引擎,现在它拥有一个全职的开发团队,因此我们正在进入PHP历史上前所未有的时期,为性能的高速提升提供了独一无二的可能性。
协程
Swoole4或更高版本拥有高可用性的内置协程,您可以使用完全同步的代码来实现异步性能,PHP代码没有任何额外的关键字,底层会自动进行协程调度。
开发者可以将协程理解为超轻量级的线程, 你可以非常容易地在一个进程中创建成千上万个协程。
Swoole:PHP 协程框架
Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于Web领域。
Swoole4 协程的成熟将PHP带入了前所未有的时期,为性能的提升提供了独一无二的可能性。
Swoole 可以广泛应用于互联网、移动通信、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。
使用 PHP + Swoole 可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
Swoole\Client
Swoole\Client 以下简称 Client,提供了 TCP/UDP、socket 的客户端的封装代码,使用时仅需 new Swoole\Client 即可。可用于 FPM/Apache 环境。
相对传统的 streams 系列函数,有几大优势:
stream 函数存在超时设置的陷阱和 Bug,一旦没处理好会导致 Server 端长时间阻塞
stream 函数的 fread 默认最大 8192 长度限制,无法支持 UDP 的大包
Client 支持 waitall,在有确定包长度时可一次取完,不必循环读取
Client 支持 UDP Connect,解决了 UDP 串包问题
Client 是纯 C 的代码,专门处理 socket,stream 函数非常复杂。Client 性能更好
Client 支持长连接
可以使用 swoole_client_select 函数实现多个 Client 的并发控制
完整示例
方法__construct()构造方法
参数
int $sock_type
功能:表示 socket 的类型【支持 SWOOLE_SOCK_TCP、SWOOLE_SOCK_TCP6、SWOOLE_SOCK_UDP、SWOOLE_SOCK_UDP6】
默认值:无
其它值:无
int $is_sync
功能:同步阻塞模式,现在只有这一个类型,保留此参数只为了兼容 api
默认值:SWOOLE_SOCK_SYNC
其它值:无
string $key
功能:用于长连接的 Key【默认使用 IP:PORT 作为 key。相同的 key,即使 new 两次也只用一个 TCP 连接】
默认值:IP:PORT
其它值:无
在 PHP-FPM/Apache 中创建长连接
加入 SWOOLE_KEEP 标志后,创建的 TCP 连接在 PHP 请求结束或者调用 $cli->close() 时并不会关闭。下一次执行 connect 调用时会复用上一次创建的连接。长连接保存的方式默认是以 ServerHost:ServerPort 为 key 的。可以再第 3 个参数内指定 key。
Client 对象析构会自动调用 close 方法关闭 socket
在 Server 中使用 Client必须在事件回调函数中使用 Client。
Server 可以用任何语言编写的 socket client 来连接。同样 Client 也可以去连接任何语言编写的 socket server
在 Swoole4+ 协程环境下使用此 Client 会导致退步为同步模型。
set()设置客户端参数,必须在 connect 前执行。
配置
Client 可以使用 set 方法设置一些选项,启用某些特性。
协议解析
协议解析为了解决 TCP 粘包问题,相关配置的意义和 Swoole\Server 一致
结束符检测
长度检测
目前支持 open_length_check 和 open_eof_check 2 种自动协议处理功能;
配置好协议解析后,客户端的 recv() 方法将不接受长度参数,每次必然返回一个完整的数据包。
MQTT 协议
启用 MQTT 协议解析,onReceive 回调将收到完整的 MQTT 数据包。
Socket 缓存区尺寸
包括 socket 底层操作系统缓存区、应用层接收数据内存缓存区、应用层发送数据内存缓冲区。
关闭 Nagle 合并算法
SSL 相关SSL/TLS 证书配置
ssl_verify_peer
验证服务器端证书。
启用后会验证证书和主机域名是否对应,如果为否将自动关闭连接
自签名证书
可设置 ssl_allow_self_signed 为 true,允许自签名证书。
ssl_host_name
设置服务器主机名称,与 ssl_verify_peer 配置配合使用或 Client::verifyPeerCert 配合使用。
ssl_cafile
当设置 ssl_verify_peer 为 true 时,用来验证远端证书所用到的 CA 证书。本选项值为 CA 证书在本地文件系统的全路径及文件名。
ssl_capath
如果未设置 ssl_cafile,或者 ssl_cafile 所指的文件不存在时,会在 ssl_capath 所指定的目录搜索适用的证书。该目录必须是已经经过哈希处理的证书目录。
ssl_passphrase
本地证书 ssl_cert_file 文件的密码。
示例
package_length_func
设置长度计算函数,与 Swoole\Server 的 package_length_func 使用方法完全一致。与 open_length_check 配合使用。长度函数必须返回一个整数。
返回 0,数据不足,需要接收更多数据
返回 -1,数据错误,底层会自动关闭连接
返回包的总长度值(包括包头和包体的总长度),底层会自动将包拼好后返回给回调函数
默认底层最大会读取 8K 的数据,如果包头的长度较小可能会存在内存复制的消耗。可设置 package_body_offset 参数,底层只读取包头进行长度解析。
示例
socks5_proxy
配置 socks5 代理。
仅设置一个选项是无效的,每次必须设置 host 和 port;socks5_username、socks5_password 为可选参数。socks5_port、socks5_password 不允许为 null。
http_proxy
配置 HTTP 代理。
http_proxy_port、http_proxy_password 不允许为 null。
基础设置
验证设置
bind
仅设置 bind_port 是无效的,请同时设置 bind_port 和 bind_address
机器有多个网卡的情况下,设置 bind_address 参数可以强制客户端 Socket 绑定某个网络地址。
设置 bind_port 可以使客户端 Socket 使用固定的端口连接到外网服务器。
Embarcadero RAD Studio(多功能应用程序开发工具) 编程工具177.22 MB12
详情猿编程客户端 编程工具173.32 MB4.16.0
详情猿编程 编程工具173.32 MB4.16.0
详情VSCodium(VScode二进制版本) 编程工具76.23 MBv1.57.1
详情aardio(桌面软件快速开发) 编程工具9.72 MBv35.69.2
详情一鹤快手(AAuto Studio) 编程工具9.72 MBv35.69.2
详情ILSpy(.Net反编译) 编程工具3.97 MBv8.0.0.7339 绿色
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情delphi2007完整 编程工具1198 MB附安装教程
详情SAPIEN PrimalScript2015 编程工具78.02 MB附带安装教程
详情Alchemy Catalyst可视化汉化工具 编程工具81.00 MBv13.1.240
详情Professional Tag Editor(通用标签编辑器) 编程工具25.6 MBv1.0.6.8
详情Coffeecup HTML Editor(html网页编辑器) 编程工具68.98 MBv15.4 特别版
详情JCreator Pro 编程工具9.65 MBv5.0.1 汉化
详情WebStorm 12中文 编程工具209.88 MB附带安装教程
详情MSWLogo(多功能项目开发与管理工具) 编程工具2.25 MBv6.5 免费版
详情JetBrains datagrip 2018.2.1中文-datagrip 2018.2.1 编程工具160.88 MB附注册码汉化包
详情易安卓5.0 编程工具202 MBv5.0 附破解补丁
详情keil uvision5 编程工具271.63 MB附带安装教程
详情CIMCO Edit V8中文 编程工具248 MB附安装教程
详情IntelliJ IDEA 2020.1(java集成开发环境) 编程工具643.0 MB附安装教程
详情redis desktop manager2020.1中文 编程工具32.52 MB附带安装教程
详情猿编程 编程工具173.32 MB4.16.0
详情信捷PLC编程工具软件 编程工具14.4 MBv3.5.2 官方版
详情源码编辑器 编程工具201.0 MBv3.4.3 官方版
详情Microsoft Visual C++ 编程工具226.00 MBv6.0 SP6 简体中文版
详情s7 200 smart编程软件 编程工具187 MBv2.2 官方中文版
详情TouchWin编辑工具(信捷触摸屏编程软件) 编程工具55.69 MBv2.D2c 官方版
详情易语言5.8完美 编程工具312 MB5.8.1 破解增强版
详情Scraino(少儿编程软件) 编程工具272.93 MBv0.3.0 官方版
详情vs2008中文 编程工具1495 MB附序列号
详情e盾网络验证源码 编程工具25.77 MBV45 官方版
详情codeblocks 编程工具95.21 MBv13.12 中文完整版(带GNW编译器
详情Android Studio(安卓开发环境) 编程工具983.0 MBv3.5.0.21 汉化版(附安装教程)
详情源码编辑器pc版 编程工具201.0 MBv3.4.3 官方版
详情CH341A编程器 编程工具1.06 MB1.30 绿色中文版
详情layuiAdmin pro(layui后台管理模板系统) 编程工具0.57 MBv1.1.0 单页版
详情海龟编辑器 编程工具71.5 MBv0.8.4 中文版
详情Ardublock中文版(Arduino图形化编程软件) 编程工具2.65 MB附带安装教程
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情富途牛牛 编程工具160.59 MBv11.8.9068 官方版
详情微信开发者工具 编程工具129.37 MBv1.05.2105170 官方版
详情UEStudio v18.0.0.18 简体中文绿色 编程工具19.00 MB
详情十六进制编辑器 WinHex 编程工具2.79 MBv20.2 SR-5
详情代码编辑器 Sublime Text 编程工具54.74 MBv4.0.0.4126
详情RJ TextEd(代码编辑器) 编程工具49.46 MBv15.31
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情影刀 编程工具306.37 MBv4.9.14
详情Kate(高级文本编辑器) 编程工具56.11 MBv21.12.1.1544
详情