swoole如何在启动时添加任务

发布于 2022-09-12 00:56:29 字数 731 浏览 16 评论 0

$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);

$server->on('open', function (Swoole\WebSocket\Server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";
});
//心跳等配置
$server->set([
    'heartbeat_check_interval' => 5,
    'heartbeat_idle_time' => 10,
]);

$server->on('message', function (Swoole\WebSocket\Server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
    $server->push($frame->fd, "this is server");
});

$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});

//我想加一个类似心跳检测的功能,就是启动后就轮询执行的功能 我要怎么加呢?
$server->start();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

演多会厌 2022-09-19 00:56:30

你现在加的参数就是啊。。。
'heartbeat_idle_time' => 10一个连接如果10秒内未向服务器发送任何数据,此连接将被强制关闭
'heartbeat_check_interval' => 5每5秒遍历一次

归属感 2022-09-19 00:56:30

我是在onstart回调中执行的定时任务,如下:

 public function onStart($server) {
    MainTimerTask::start();//启动定时任务
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文