您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman常用组件-GlobalData变量共享组件-GlobalDataClient-全部用法(php-fpm环境也可以使用)
发布时间:2021-12-12 21:59:00编辑:雪饮阅读()
全部用法(php-fpm环境也可以使用)
实例:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// GlobalData Server
$global_worker = new GlobalData\Server('127.0.0.1', 2207);
$worker = new Worker('tcp://0.0.0.0:6636');
// 进程启动时
$worker->onWorkerStart = function()
{
// 初始化一个全局的global data client
global $global;
$global = new \GlobalData\Client('127.0.0.1:2207');
};
// 每次服务端收到消息时
$worker->onMessage = function(TcpConnection $connection, $data)
{
global $global;
echo "\r\n isset: \r\n";
var_export(isset($global->abc));
$global->abc = array(1,2,3);
echo "\r\n isset: \r\n";
var_export(isset($global->abc));
echo "\r\n abc: \r\n";
var_export($global->abc);
unset($global->abc);
echo "\r\n isset: \r\n";
var_export(isset($global->abc));
echo "\r\n abc add: \r\n";
var_export($global->add('abc', 10));
echo "\r\n abc add after value: \r\n";
var_export($global->abc);
echo "\r\n abc increment: \r\n";
var_export($global->increment('abc', 2));
echo "\r\n abc increment after value: \r\n";
var_export($global->abc);
echo "\r\n abc cas: \r\n";
//CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化(原子),只有在没变的情况下才对其赋值。
var_export($global->cas('abc', 12, 18));
echo "\r\n abc cas after value: \r\n";
var_export($global->abc);
};
Worker::runAll();
?>
实例运行并有telnet触发onMessage时:
[root@localhost workerman]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini start.php start
Workerman[start.php] start in DEBUG mode
-------------------------------------------- WORKERMAN ---------------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
--------------------------------------------- WORKERS ----------------------------------------------
proto user worker listen processes status
tcp root globalDataServer frame://127.0.0.1:2207 1 [OK]
tcp root none tcp://0.0.0.0:6636 1 [OK]
----------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
isset:
false
isset:
true
abc:
array (
0 => 1,
1 => 2,
2 => 3,
)
isset:
false
abc add:
true
abc add after value:
10
abc increment:
12
abc increment after value:
12
abc cas:
true
abc cas after value:
18
据说这些操作在php-fpm环境也可以使用,这里没有实测,但官网有这样说的。
关键字词:workerman,GlobalData,变量,共享,GlobalDataClient,全部用法,php-ffpm
上一篇:workerman常用组件-GlobalData变量共享组件-GlobalData 组件客户端
下一篇:workerman常用组件-GlobalData变量共享组件-GlobalDataClient-全部用法在php-fpm环境也可以使用