Commit: https://github.com/swoole/swoole-src/pull/3708/files
4.5.5
正在开发中,尚未发布版本
在之前的版本中,底层提供了connect_time
和last_time
两项时间信息,单位为秒,表示:
- 连接到服务器的时间
- 最后一次接收数据的时间
在非常复杂实际的项目中,这两项信息是远远不能满足需求的,在最新的版本中我们进行了优化。
时间精度调整
底层的时间全部改为使用 double
类型,精确到了微秒,包括:建立连接与数据接收、投递、数据。
增加发送和投递时间
在 Server::getClientInfo()
方法的返回值中增加了3
个新的时间字段,精度为微秒:
last_recv_time
:最近一次接收数据的时间last_dispatch_time
:最近一次投递数据的时间,当触发onReceive
回调时,读取此信息可以得到,当前的$data
在master
进程是什么时间dispatch
的,通过判断投递时间和当前时间的差值,可以得到任务在管道
中等待的耗时last_send_time
:最近一次发送到内核Socket
缓存区的时间,通过此时间可以判断出客户端是否可以正常接收数据包,是否存在接收延时
通过更精确的时间数据,可以实现更细粒度的通信管理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。