返回介绍

1.16.9 对象和资源的持久化

发布于 2020-05-17 11:52:43 字数 2250 浏览 973 评论 0 收藏 0

在传统的Web开发中,PHP创建的对象、数据、资源等会在请求完毕后全部释放,导致很难做到持久化。而在WorkerMan中可以轻松做到这些。

在WorkerMan中如果想在内存中永久保存某些数据资源,可以将资源放到全局变量中或者类的静态成员中。

例如下面的代码:

用一个全局变量$connection_count保存一个当前进程的客户端连接数。

<?php
use WorkermanWorker;
require_once __DIR__ . '/Workerman/Autoloader.php';

// 全局变量,保存当前进程的客户端连接数
$connection_count = 0;

$worker = new Worker('tcp://0.0.0.0:1236');

$worker->onConnect = function($connection)
{
    // 有新的客户端连接时,连接数+1
    global $connection_count;
    ++$connection_count;
    echo "now connection_count=$connection_countn";
};

$worker->onClose = function($connection)
{
    // 客户端关闭时,连接数-1
    global $connection_count;
    $connection_count--;
    echo "now connection_count=$connection_countn";
};

PHP变量作用域参见:

http://php.net/manual/zh/language.variables.scope.php

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文