您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman类TcpConnection的接口pauseRecv实现上传流量控制
发布时间:2021-12-03 23:48:21编辑:雪饮阅读()
pauseRecv
说明:
void Connection::pauseRecv(void)
使当前连接停止接收数据。该连接的onMessage回调将不会被触发。此方法对于上传流量控制非常有用
参数
无参数
实例:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onConnect = function($connection)
{
// 给connection对象动态添加一个属性,用来保存当前连接发来多少个请求
$connection->messageCount = 0;
};
$worker->onMessage = function(TcpConnection $connection, $data)
{
// 每个连接接收100个请求后就不再接收数据
$limit = 100;
if(++$connection->messageCount > $limit)
{
$connection->pauseRecv();
}
else{
$connection->send("服务端已收到!,消息数:".$connection->messageCount);
}
};
// 运行worker
Worker::runAll();
?>
实例运行:
[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.
客户端发送消息测试:
客户端脚本:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="https://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
<script type="">
$(document).ready(function(){
var ws = new WebSocket("ws://47.240.19.5:8484");
ws.onopen = function(){
ws.send("佳鹏!");
}
ws.onmessage = function(e){
console.log("接收到的数据:");
console.log(e.data);
ws.send("send 佳鹏!");
}
ws.onclose = function(e){
console.log("连接已关闭");
console.log(e);
}
ws.onerror = function(e){
}
});
</script>
</head>
<body>
</body>
</html>
关键字词:workerman,TcpConnection,pauseRecv,流量控制
相关文章
- workerman类TcpConnection的worker属性
- workerman类TcpConnection的id属性
- workerman类TcpConnection的protocol属性
- workerman类TcpConnection的回调属性onClose
- workerman类TcpConnection的回调属性onMessage
- workerman类TcpConnection的接口destroy
- workerman类TcpConnection的接口getRemoteIp获取远端
- workerman类TcpConnection的接口getRemotePort获取远
- workerman类TcpConnection的接口close
- workerman类TcpConnection的maxSendBufferSize属性(缓