9
my $info = $sub->info->recv;
10
if($info->{redis_version} lt "1.3.10") {
11
plan skip_all => "No PUBLISH/SUBSCRIBE support in this Redis version";
14
my $pub = AnyEvent::Redis->new(host => "127.0.0.1", port => $port);
18
# $pub is for publishing
19
# $sub is for subscribing
25
my $expected_count = 10;
27
my $sub1_cv = $sub->subscribe("test.1", sub {
28
my($message, $chan) = @_;
30
if(++$count == $expected_count) {
31
$sub->unsubscribe("test.1");
32
is $x, $expected_x, "Messages received, values as expected";
36
$sub1_cv->cb(sub { $sub1_cv->recv; $all_cv->end });
38
for(1 .. $expected_count) {
39
my $cv = $pub->publish("test.1" => $_);
41
# Need to be sure a client has subscribed
42
$expected_x = 0, redo unless $cv->recv;
45
# Pattern subscription
50
my $expected_count2 = 10;
52
my $sub2_cv = $sub->psubscribe("test.*", sub {
53
my($message, $chan) = @_;
55
if(++$count2 == $expected_count2) {
56
$sub->punsubscribe("test.*");
57
is $y, $expected_y, "Messages received, values as expected";
61
$sub2_cv->cb(sub { $sub2_cv->recv; $all_cv->end });
63
for(1 .. $expected_count2) {
64
my $cv = $pub->publish("test.$_" => $_);
66
# Need to be sure a client has subscribed
67
$expected_y = 0, redo unless $cv->recv;