Swoole支持哪些网络协议?

2026-05-06 21:560阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计678个文字,预计阅读时间需要3分钟。

Swoole支持哪些网络协议?

相关文章内容摘要:

在实际应用中,希望在服务器上能够一次接收一段完整的数据,不多也不少。

传统的TCP服务器中,往往需要由程序员维护一个缓存区,先将读取到数据写入缓存区,然后再通过预先设定好的协议内容来区分一段完整数据的开头、结尾和长度,并将一段完整的数据交给逻辑部分处理,这就是自定义协议的功能。

在Swoole中已经在底层实现了一个数据缓存区,并内置了几种常用的协议类型,并直接在底层做好了数据的拆分,以保证在onReceive回调函数中,一定能够收到一个或数个完整的数据段。

数据缓存区的大小可以通过配置pakcage_max_length来控制。

$configs = []; $configs["package_max_length"] = 8192; $server->set($configs);

swoole目前支持两种通讯协议:EOF结束符协议、固定包头加包体协议

package_max_length

package_max_length用于设置最大数据包尺寸,当开启open_length_check或open_eof_check或open_http_protocol等协议解析后,Swoole底层会进程数据包拼接,此时在数据包未收取完整时,所有数据都将保存在内存中。

所以需要设置package_max_length一个数据包最大允许占用的内存尺寸。

如果同时有1万个TCP连接在发送数据,每个数据包2MB,在最极端的情况下会占用20GB的内存空间。所以此参数不宜设置过大,否则会占用很大的内存。

阅读全文
标签:Swoole

本文共计678个文字,预计阅读时间需要3分钟。

Swoole支持哪些网络协议?

相关文章内容摘要:

在实际应用中,希望在服务器上能够一次接收一段完整的数据,不多也不少。

传统的TCP服务器中,往往需要由程序员维护一个缓存区,先将读取到数据写入缓存区,然后再通过预先设定好的协议内容来区分一段完整数据的开头、结尾和长度,并将一段完整的数据交给逻辑部分处理,这就是自定义协议的功能。

在Swoole中已经在底层实现了一个数据缓存区,并内置了几种常用的协议类型,并直接在底层做好了数据的拆分,以保证在onReceive回调函数中,一定能够收到一个或数个完整的数据段。

数据缓存区的大小可以通过配置pakcage_max_length来控制。

$configs = []; $configs["package_max_length"] = 8192; $server->set($configs);

swoole目前支持两种通讯协议:EOF结束符协议、固定包头加包体协议

package_max_length

package_max_length用于设置最大数据包尺寸,当开启open_length_check或open_eof_check或open_http_protocol等协议解析后,Swoole底层会进程数据包拼接,此时在数据包未收取完整时,所有数据都将保存在内存中。

所以需要设置package_max_length一个数据包最大允许占用的内存尺寸。

如果同时有1万个TCP连接在发送数据,每个数据包2MB,在最极端的情况下会占用20GB的内存空间。所以此参数不宜设置过大,否则会占用很大的内存。

阅读全文
标签:Swoole