入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:46:53 | 292 次阅读 | 评论: 0 | 来源: 网络整理

设置客户端参数,必须在connect前执行。swoole-1.7.17为客户端提供了类似swoole_server的自动协议处理功能。通过设置一个参数即可完成TCP的自动分包。

结束符检测

$client->set(array(
    'open_eof_check' => true,
    'package_eof' => "rnrn",
    'package_max_length' => 1024 * 1024 * 2,
))

长度检测

$client->set(array(
    'open_length_check'     => 1,
    'package_length_type'   => 'N',
    'package_length_offset' => 0,       //第N个字节是包长度的值
    'package_body_offset'   => 4,       //第几个字节开始计算长度
    'package_max_length'    => 2000000,  //协议最大长度
));

Socket缓存区尺寸

$client->set(array(
    'socket_buffer_size'     => 1024*1024*2, //2M缓存区
));

关闭Nagle合并算法

$client->set(array(
    'open_tcp_nodelay'     =>  true,
));

使用说明

  • 目前支持open_length_check和open_eof_check2种自动协议处理功能,参考swoole_server中的配置选项
  • 启用了自动协议后,同步阻塞客户端recv方法将不接受长度参数,每次必然返回一个完整的数据包
  • 启用了自动协议后,异步非阻塞客户端onReceive每次必然返回一个完整的数据包
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务