当前位置:网站首页>Swoole 健康检查
Swoole 健康检查
2022-08-08 20:24:00 【李斌的BLOG】
参考文献
client同步阻塞客户端:https://wiki.swoole.com/#/client?id=%E5%AE%8C%E6%95%B4%E7%A4%BA%E4%BE%8B
heartbeat_check_interval:https://wiki.swoole.com/#/server/setting?id=heartbeat_check_interval
健康检查机制
对于长连接这种断开的问题;主要的点就在于服务端会保存客户端会话的有效性以及平台上监控所有客户端的网络状况;对于这种功能的实现我们可以通过两种方式实现
1、轮询机制
2、心跳机制

代码演示
tcpServer.php
<?php
// var_dump(swoole_get_local_ip());die;
echo swoole_get_local_ip()['eth0'].":9503\n";
$server = new Swoole\Server("0.0.0.0", 9503);
// 每个2s检测,在3s内没有给我发送信息的连接
$server->set([
'heartbeat_check_interval' => 2, // 检测所有的连接
'heartbeat_idle_time' => 3,
]);
$server->on('connect', function ($server, $fd){
echo "connection open: {
$fd}\n";
});
$server->on('receive', function ($server, $fd, $reactor_id, $data) {
echo "接收到信息".$data." \n";
$server->send($fd, "swoole: {
$data}");
});
$server->on('close', function ($server, $fd) {
echo "connection close: {
$fd}\n";
});
$server->start();
tcpClient.php
<?php
$client = new Swoole\Client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9503, -1)) {
exit("connect failed. Error: {
$client->errCode}\n");
}
//每隔2000ms触发一次
swoole_timer_tick(2000, function ($timer_id) use ($client) {
echo "string\n";
$client->send(1);
$client->recv();
});
// $client->send("hello world1\n");
// echo $client->recv();
// $client->send("hello world2\n");
// echo $client->recv();
// $client->send("hello world3\n");
// echo $client->recv();
// $client->send("hello world4\n");
// echo $client->recv();
// $client->close();
边栏推荐
猜你喜欢

五大理由告诉你为什么开发人员选择代码质量静态分析工具Klocwork来实现软件安全

IJCAI 2022 | Can Graph Neural Networks Detect Anomalies?

我们为什么要远离Service Mesh

培训预告 | 企业应用现代化实用教程——DevOps方法论及最佳实践篇 8月11日上线

瑞吉外卖项目实战Day06--手机端

瑞芯微rk1126 平台部分jpeg图片解码程序挂掉的问题

JSP第二篇 -----JSP浅聊EL表达式第二篇:EL表达式中的运算符

DCT变换

【翻译】用Argo CD揭开企业规模的持续交付的秘密成分

Intel两大FPGA产品部署中国:性能升45%、功耗降40%
随机推荐
Maykel Studio OpenHarmony Device Development Training Notes - Chapter 6 Study Notes
小白如何购买基金产品?
书法家唐效奇
测试计划
SushiSwap「SUSHI」下降了 93%,但还没有完全消失
OpenEuler's Ways to Improve Resource Utilization 02: Effects under Typical Applications
Cesium中自定义材质material
用 Antlr 重构脚本解释器
PHP解析json数据,显示
监控工具普罗米修斯(Prometheus)的介绍与安装
微服务负载均衡器Ribbon
MySQL8 免安装版安装
瑞吉外卖项目实战Day06--手机端
2022年云商店联合营销市场发展基金(MDF)介绍
Canvans:绘制饼图和玫瑰饼图
继承的详解
培训预告 | 企业应用现代化实用教程——DevOps方法论及最佳实践篇 8月11日上线
方舟开服务器教程——开服配置常见问题及解决方法
DCT变换
超人飞来!Flutter 实现满屏的力量感动画!