Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

Latest commit

 

History

History
22 lines (15 loc) · 1.09 KB

2.3.18 - open_eof_check.md

File metadata and controls

22 lines (15 loc) · 1.09 KB

open_eof_check

打开EOF检测,此选项将检测客户端连接发来的数据,当数据包结尾是指定的字符串时才会投递给Worker进程。否则会一直拼接数据包,直到超过缓存区或者超时才会中止。当出错时底层会认为是恶意连接,丢弃数据并强制关闭连接。

参数类型

  • 布尔型,必须为 truefalse,传入其他类型数值会被强制转为布尔型

此配置仅对STREAM类型的Socket有效,如TCPUnix Socket Stream

array(
	'open_eof_check' => true, //打开EOF检测
	'package_eof' => "\r\n", //设置EOF
)

常见的Memcache/SMTP/POP等协议都是以\r\n结束的,就可以使用此配置。开启后可以保证Worker进程一次性总是收到一个或者多个完整的数据包。

EOF检测不会从数据中间查找eof字符串,所以Worker进程可能会同时收到多个数据包,需要在应用层代码中自行explode("\r\n", $data) 来拆分数据包
1.7.15版本增加了open_eof_split配置项,支持从数据中查找EOF,并切分数据