63 lines
1.4 KiB
PHP
Executable File
63 lines
1.4 KiB
PHP
Executable File
--TEST--
|
|
swoole_redis: subscribe & publish
|
|
--SKIPIF--
|
|
<?php require __DIR__ . '/../include/skipif.inc';
|
|
if (!class_exists("swoole_redis", false))
|
|
{
|
|
exit("required redis.");
|
|
}
|
|
?>
|
|
--INI--
|
|
assert.active=1
|
|
assert.warning=1
|
|
assert.bail=0
|
|
assert.quiet_eval=0
|
|
|
|
|
|
--FILE--
|
|
<?php
|
|
require_once __DIR__ . '/../include/bootstrap.php';
|
|
require_once __DIR__ . '/../include/swoole.inc';
|
|
|
|
parent_child(function ($pid)
|
|
{
|
|
//父进程
|
|
suicide(3000);
|
|
$redis = new \swoole_redis();
|
|
$redis->on("message", function (\swoole_redis $redis, $message) use ($pid)
|
|
{
|
|
if ($message[0] == 'subscribe')
|
|
{
|
|
return;
|
|
}
|
|
assert($message !== false);
|
|
assert($message[2] === "payload!!!");
|
|
|
|
pcntl_waitpid($pid, $status);
|
|
swoole_event_exit();
|
|
});
|
|
|
|
$redis->connect(REDIS_SERVER_HOST, REDIS_SERVER_PORT, function (\swoole_redis $redis, $r)
|
|
{
|
|
assert($r);
|
|
$redis->subscribe("test_on_message");
|
|
});
|
|
}, function ()
|
|
{
|
|
//子进程
|
|
suicide(2000);
|
|
$redis = new \swoole_redis();
|
|
$redis->connect(REDIS_SERVER_HOST, REDIS_SERVER_PORT, function (\swoole_redis $redis, $r)
|
|
{
|
|
assert($r);
|
|
$r = $redis->publish("test_on_message", "payload!!!", function (\swoole_redis $redis, $r)
|
|
{
|
|
assert($r);
|
|
swoole_event_exit();
|
|
});
|
|
assert($r);
|
|
});
|
|
});
|
|
?>
|
|
--EXPECT--
|