欢迎来到神奇下载!我们唯一域名是:www.sqxzz.com

Swoole 官方版 v4.6.2

更新时间:2022-06-01 14:39:24

软件介绍

Swoole可以提升HTTP、TCP服务能,如果你制作的系统请求服务比较频繁就可以选择这款软件提升通信能,将软件部署到开发程序就可以在配置的时候通过这款软件编辑请求服务方案;该软件提供很多编译选项,支持通用参数、特殊参数、Debug参数、PHP编译参数,您可以根据不同的服务请求项目配置新的参数,软件可以结合TCP、UDP、HTTP、WebSocket、MQTT(物联网)、执行异步任务(Task)使用,附加了详细的教程,让用户在开发新应用程序的时候获得更好的服务请求能!

Swoole软件功能

通讯编程

Swoole是一个C++编写的基于异步事件驱动和协程的并行网络通信引擎,为PHP提供高能网络编程支持

事件驱动

Swoole中的网络请求处理是基于事件的,并且充分利用了底层的epoll / kqueue实现,使得为数百万个请求提供服务变得非常容易。

Swoole4使用全新的协程内核引擎,现在它拥有一个全职的开发团队,因此我们正在进入PHP历史上前所未有的时期,为能的高速提升提供了独一无二的可能。

协程

Swoole4或更高版本拥有高可用的内置协程,您可以使用完全同步的代码来实现异步能,PHP代码没有任何额外的关键字,底层会自动进行协程调度。

开发者可以将协程理解为超轻量级的线程, 你可以非常容易地在一个进程中创建成千上万个协程。

Swoole软件特色

Swoole:PHP 协程框架

Swoole 使 PHP 开发人员可以编写高能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于Web领域。

Swoole4 协程的成熟将PHP带入了前所未有的时期,为能的提升提供了独一无二的可能。

Swoole 可以广泛应用于互联网、移动通信、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。

使用 PHP + Swoole 可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。

Swoole使用说明

SwooleClient

SwooleClient 以下简称 Client,提供了 TCP/UDP、socket 的客户端的封装代码,使用时仅需 new SwooleClient 即可。可用于 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

其它值:无

stng $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

在 Swoole4+ 协程环境下使用此 Client 会导致退步为同步模型。

set()设置客户端参数,必须在 connect 前执行。

配置

Client 可以使用 set 方法设置一些选项,启用某些特。

协议解析

协议解析为了解决 TCP 粘包问题,相关配置的意义和 SwooleServer 一致

结束符检测

长度检测

目前支持 open_len_check 和 open_eof_check 2 种自动协议处理功能;

配置好协议解析后,客户端的 recv() 方法将不接受长度参数,每次必然返回一个完整的数据包。

MQTT 协议

启用 MQTT 协议解析,onReceive 回调将收到完整的 MQTT 数据包。

Socket 缓存区尺寸

包括 socket 底层作系统缓存区、应用层接收数据内存缓存区、应用层发送数据内存缓冲区。

关闭 Nagle 合并算法

SSL 相关SSL/TLS 证书配置

ssl_vefy_peer

验证端证书。

启用后会验证证书和主机域名是否对应,如果为否将自动关闭连接

自签名证书

可设置 ssl_allow_self_signed 为 true,允许自签名证书。

ssl_host_name

设置主机名称,与 ssl_vefy_peer 配置配合使用或 Client::vefyPeerCert 配合使用。

ssl_cafile

当设置 ssl_vefy_peer 为 true 时,用来验证远端证书所用到的 CA 证书。本选项值为 CA 证书在本地文件系统的全路径及文件名。

ssl_capath

如果未设置 ssl_cafile,或者 ssl_cafile 所指的文件不存在时,会在 ssl_capath 所指定的目录搜索适用的证书。该目录必须是已经经过哈希处理的证书目录。

ssl_passphrase

本地证书 ssl_cert_file 文件的密码。

示例

package_len_func

设置长度计算函数,与 SwooleServer 的 package_len_func 使用方法完全一致。与 open_len_check 配合使用。长度函数必须返回一个整数。

返回 0,数据不足,需要接收更多数据

返回 -1,数据错误,底层会自动关闭连接

返回包的总长度值(包括包头和包体的总长度),底层会自动将包拼好后返回给回调函数

默认底层最大会读取 8K 的数据,如果包头的长度较小可能会存在内存复制的消耗。可设置 package_body_offset 参数,底层只读取包头进行长度解析。

示例

socks5_pxy

配置 socks5 代理。

仅设置一个选项是无效的,每次必须设置 host 和 port;socks5_username、socks5_password 为可选参数。socks5_port、socks5_password 不允许为 null。

http_pxy

配置 HTTP 代理。

http_pxy_port、http_pxy_password 不允许为 null。

基设置

验证设置

bind

仅设置 bind_port 是无效的,请同时设置 bind_port 和 bind_address

机器有多个网卡的情况下,设置 bind_address 参数可以强制客户端 Socket 绑定某个网络地址。

设置 bind_port 可以使客户端 Socket 使用固定的端口连接到外网。

近期热门

1
UEStudio增强版是 UltraEdit 的开发环境版本,软件功能非常强大,界面简洁明晰、作方便快捷,设计 […]
2
DLL函数查看器是一款易于使用的dll函数查看工具。软件具备了简单直观的用户界面,拖动dll文件到窗口,或者双 […]
3
精易csharp编程助手也就是精易c#编程助手,是一款辅助c#快速开发的工具,主要功能模块包括常用代码、网页提 […]
4
Alactty是一款跨平台的OpenGL终端仿真器,可以通过这款软件快速运行脚本,添加了对Windows的支持 […]
5
VSCodium(VScode二进制版本)免费下载是编程开发分类下一款电脑软件,神奇下载小编给各位带来了VSC […]
6
Dxpress版是一款优秀实用的控件库软件。Dxpress19中文版软件能够帮助用户设计具有图形和高级和高级功 […]
7
Kratos提供非常多的服务框架,可以帮助用户在搭建网站和应用的时候快速配置通讯,配置HTTP服务,配置数据分 […]
8
CDS是一款自动化软件,您可以在软件上建立多种自动化作业方式,有效提升企业工作效率,优化复杂的工作流程,您可以 […]
9
夜神助手全称是夜神模拟器连接助手,因为作者在安卓逆向学习过程中,经常使用夜神模拟器调试程序经常打开很多命令行窗 […]
10
MyBB是一款论坛开发软件,如果你需要设计论坛就可以直接通过这款软件部署到使用,不需要自己原创代码就可以立即创 […]

声明:本站所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助 转载需标注!

Copyright © 2018-2023 All Rights Reserved. 神奇下载网站备案编号:苏ICP备12036411号

抵制不良游戏软件,拒绝盗版。 注意自我保护,谨防受骗上当。 适度娱乐益脑,沉迷伤身。合理安排时间,享受健康生活。

共 22 次查询,耗时 0.936 秒