您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman类TcpConnection的defaultMaxSendBufferSize属性
发布时间:2021-12-03 21:54:23编辑:雪饮阅读()
defaultMaxSendBufferSize
说明:
static int Connection::$defaultMaxSendBufferSize
此属性为全局静态属性,用来设置所有连接的默认应用层发送缓冲区大小。不设置默认为1MB。 Connection::$defaultMaxSendBufferSize可以动态设置,设置后只对之后产生的新连接有效
此属性影响onBufferFull回调。
范例(1024默认缓冲区大小)
test.php:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// 设置所有连接的默认应用层发送缓冲区大小
TcpConnection::$defaultMaxSendBufferSize = 1024;
$count=0;
$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onConnect = function(TcpConnection $connection)
{
global $count;
for($i=0;$i<10000;$i++){
$count=$i;
$connection->send($i);
}
};
$worker->onBufferFull=function(){
global $count;
echo "\r\n";
var_dump("缓冲区超载! count:".$count);
echo "\r\n";
};
// 运行worker
Worker::runAll();
?>
实例运行并有websocket连接时:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root none websocket://0.0.0.0:8484 1 [OK]
--------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
string(26) "缓冲区超载! count:226"
2048默认缓冲区大小的承载能力:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// 设置所有连接的默认应用层发送缓冲区大小
TcpConnection::$defaultMaxSendBufferSize =2048;
$count=0;
$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onConnect = function(TcpConnection $connection)
{
global $count;
for($i=0;$i<10000;$i++){
$count=$i;
$connection->send($i);
}
};
$worker->onBufferFull=function(){
global $count;
echo "\r\n";
var_dump("缓冲区超载! count:".$count);
echo "\r\n";
};
// 运行worker
Worker::runAll();
?>
实例运行并有websocket连接时:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root none websocket://0.0.0.0:8484 1 [OK]
--------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
string(26) "缓冲区超载! count:431"
关键字词:workerman,TcpConnection,defaultMaxSendBufferSize
相关文章
- workerman类AsyncTcpConnection的__construct方法实现
- workerman类AsyncTcpConnection的__construct方法实现
- workerman接口listen实现内外部通信(管理后台或系统向w
- php或workerman利用posix_getpid函数获取进程id
- workerman回调onBufferFull(缓冲区溢出)
- workerman回调onBufferFull默认缓冲区大小配置
- workerman回调onClose
- workerman回调onConnect获取远端ip
- workerman回调onMessage
- workerman回调onWorkerReload