安下载编程开发

分类分类

Swoole(并行网络通信引擎)

Swoole(并行网络通信引擎)

v4.6.2 官方版

大小:2.34 MB 更新:2021/02/02

类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll

立即下载

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

Swoole(并行网络通信引擎)

软件功能

  通讯编程

  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(并行网络通信引擎)

使用说明

  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 的并发控制

  完整示例

Swoole(并行网络通信引擎)

  方法__construct()构造方法

Swoole(并行网络通信引擎)

  参数

  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(并行网络通信引擎)

  加入 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 前执行。

Swoole(并行网络通信引擎)

  配置

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

  协议解析

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

  结束符检测

Swoole(并行网络通信引擎)

  长度检测

Swoole(并行网络通信引擎)

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

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

  MQTT 协议

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

Swoole(并行网络通信引擎)

  Socket 缓存区尺寸

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

Swoole(并行网络通信引擎)

  关闭 Nagle 合并算法

Swoole(并行网络通信引擎)

  SSL 相关SSL/TLS 证书配置

Swoole(并行网络通信引擎)

  ssl_verify_peer

  验证服务器端证书。

Swoole(并行网络通信引擎)

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

  自签名证书

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

Swoole(并行网络通信引擎)

  ssl_host_name

  设置服务器主机名称,与 ssl_verify_peer 配置配合使用或 Client::verifyPeerCert 配合使用。

Swoole(并行网络通信引擎)

  ssl_cafile

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

Swoole(并行网络通信引擎)

  ssl_capath

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

Swoole(并行网络通信引擎)

  ssl_passphrase

  本地证书 ssl_cert_file 文件的密码。

  示例

Swoole(并行网络通信引擎)

  package_length_func

  设置长度计算函数,与 Swoole\Server 的 package_length_func 使用方法完全一致。与 open_length_check 配合使用。长度函数必须返回一个整数。

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

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

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

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

  示例

Swoole(并行网络通信引擎)

  socks5_proxy

  配置 socks5 代理。

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

Swoole(并行网络通信引擎)

  http_proxy

  配置 HTTP 代理。

  http_proxy_port、http_proxy_password 不允许为 null。

  基础设置

Swoole(并行网络通信引擎)

  验证设置

Swoole(并行网络通信引擎)

  bind

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

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

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

Swoole(并行网络通信引擎)
精品推荐
同类推荐
相关下载
  • 最新排行
  • 最热排行
  • 评分最高
编程开发排行榜
实时热词