statistics:使用 PHP + Swoole 实现的统计监控系统(三)

源码分析

类&方法

new swoole_client()

  • 创建TCP或UDP类的客户端:new swoole_client(SWOOLE_SOCK_TCP | SWOOLE_SOCK_UDP, SWOOLE_SOCK_SYNC)
  • send():发送数据
  • recv():接收数据
  • close():关闭连接
  • 源码解析:https://blog.csdn.net/lcli2009/article/details/82845729

new swoole_server()

  • 创建TCP服务:new swoole_server($ip, $port)
  • 创建UDP服务:new swoole_server($ip, $port, SWOOLE_PROCESS, SWOOLE_SOCK_UDP)

new swoole_http_server()

  • 创建web服务器:new swoole_http_server($ip, $port)

swoole_set_process_name()

  • 修改进程名:https://wiki.swoole.com/wiki/page/125.html#entry_h3_0
  • MacOsX 不支持修改进程名
  • 如何修改:在swoole_server_create之前修改为manager进程名称;onStart调用时修改为主进程名称
    onWorkerStart修改为worker进程名称

tick()

  • 添加定时器,在Server->start()之后执行
  • worker进程结束运行之后,所有定时器会自动销毁
  • 在onWorkerStart中使用,根据worker进程数量执行
  • 在onManagerStart中使用,只执行一次
  • Server->tick(1000, function($id){}); $id 是定时器的id,从1开始,一直累加.
  • https://wiki.swoole.com/#/timer

swoole_version

  • swoole版本号

swoole_errno

  • 获取最近一次的错误码

swoole_strerror

  • 根据错误码获取错误信息:swoole_strerror(swoole_errno())

常量

SWOOLE_TCP

  • 指定的TCP客户端或服务器

SWOOLE_SOCK_SYNC

  • 创建客户端时(默认)指定为:同步阻塞
  • 异步阻塞:SWOOLE_SOCK_ASYNC
  • 同步与异步、阻塞与非阻塞:https://blog.csdn.net/qq_38128179/article/details/86132731

SWOOLE_PROCESS

  • 使用进程模式,业务代码在 Worker 进程中执行
  • SWOOLE_BASE:使用 Base 模式,业务代码在 Reactor 进程中直接执行

SWOOLE_SOCK_TCP

  • 指定的TCP客户端或服务器

SWOOLE_SOCK_UDP

  • 指定的UDP客户端或服务器

SWOOLE_KEEP

  • 创建TCP长连接:new swoole_client(SWOOLE_SOCK_TCP | SWOOLE_SOCK_KEEP);
  • 不能单独使用,必须配合SWOOLE_SOCK_TCP、SWOOLE_SOCK_UDP等使用;
  • 优点:TCP长连接可以减少3次握手/4次挥手带来的额外IO消耗;降低服务端close/connect次数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值