use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(keep_alive => 1);
my $url = "http://example.com/myUrl";
my $token = undef;
while(1)
{
my $res = $ua->get($url, 'Start-From' => $token // "", 'X-AcceptDeltaUpdates' => 'true');
$token = $res->headers->{'token'} if ($res->headers->{'token'});
print $res->decoded_content if ($res->is_success);
sleep 4;
}
####
Array is: ['item1','item2']
Add ['item3']
No update
Add ['item4']
No update
Add ['item5']
No update
...
####
use strict;
use warnings;
use AnyEvent;
use AnyEvent::HTTP;
my $url = "http://example.com/myUrl";
my $token = undef;
while(1)
{
my $cv = AnyEvent::condvar;
my $instance = http_request GET => $url,
headers => { 'Start-From' => $token // "", 'X-AcceptDeltaUpdates' => 'true' },
keepalive => 1,
persistent => 1,
sub {
my ($data, $headers) = @_;
$token = $headers->{'token'} if (defined $headers->{'token'});
print $data if ($data);
$cv->send;
};
$cv->recv;
$cv = AnyEvent::condvar;
my $timer = AnyEvent->timer(after=>4, interval => 4, cb => sub {
$cv->send;
});
$cv->recv;
}
####
Array is: ['item1','item2']
No update
No update
No update
No update
No update
No update
Array is: ['item1','item2','item3','item4']
No update
No update
No update
No update
No update
No update
...