Swoole(并行网络通信引擎)
v4.6.2 官方版- 软件大小:2.34 MB
- 更新日期:2021-02-02 10:34
- 软件语言:简体中文
- 软件类别:编程工具
- 软件授权:免费版
- 软件官网:待审核
- 适用平台: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 使用固定的端口连接到外网服务器。
人气软件
-
redis desktop manager2020.1中文 32.52 MB
/简体中文 -
s7 200 smart编程软件 187 MB
/简体中文 -
GX Works 2(三菱PLC编程软件) 487 MB
/简体中文 -
CIMCO Edit V8中文 248 MB
/简体中文 -
JetBrains DataGrip 353 MB
/英文 -
Dev C++下载 (TDM-GCC) 83.52 MB
/简体中文 -
TouchWin编辑工具(信捷触摸屏编程软件) 55.69 MB
/简体中文 -
信捷PLC编程工具软件 14.4 MB
/简体中文 -
TLauncher(Minecraft游戏启动器) 16.95 MB
/英文 -
Ardublock中文版(Arduino图形化编程软件) 2.65 MB
/简体中文