AnyEvent-ReverseHTTP
view release on metacpan or search on metacpan
directory:
- inc
- t
- xt
requires:
Any::Moose: 0
AnyEvent: 0
AnyEvent::HTTP: 0
Digest::SHA: 0
Filter::Util::Call: 0
HTTP::Request: 0
Time::HiRes: 0
URI::Escape: 0
perl: 5.8.1
resources:
license: http://dev.perl.org/licenses/
repository: git://github.com/miyagawa/AnyEvent-ReverseHTTP.git
version: 0.05
Makefile.PL view on Meta::CPAN
use inc::Module::Install;
name 'AnyEvent-ReverseHTTP';
all_from 'lib/AnyEvent/ReverseHTTP.pm';
requires 'HTTP::Request';
requires 'AnyEvent';
requires 'AnyEvent::HTTP';
requires 'URI::Escape';
requires 'Any::Moose';
requires 'Digest::SHA';
requires 'Time::HiRes';
build_requires 'Test::More';
use_test_base;
eg/proxy.pl view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use HTTP::Request::Common;
use AnyEvent::HTTP;
use AnyEvent::ReverseHTTP;
my $proxy_to = $ARGV[0] or die 'require proxy target';
my $w = AnyEvent::ReverseHTTP->new(
on_register => sub {
print "You can connect to your server at $_[0]\n";
},
on_request => sub {
lib/AnyEvent/ReverseHTTP.pm view on Meta::CPAN
package AnyEvent::ReverseHTTP;
use strict;
use 5.008_001;
our $VERSION = '0.05';
use Carp;
use AnyEvent::Util;
use AnyEvent::HTTP;
use HTTP::Request;
use HTTP::Response;
use URI::Escape;
use Scalar::Util;
use base qw(Exporter);
our @EXPORT = qw(reverse_http);
use Any::Moose;
has endpoint => (
lib/AnyEvent/ReverseHTTP.pm view on Meta::CPAN
my $app_url = _extract_link($hdr, 'related');
$self->on_register->($app_url);
} else {
return $self->on_error->("$hdr->{Status}: $hdr->{Reason}");
}
my $poller; $poller = sub {
my($body, $hdr) = @_;
if ($hdr->{Status} eq '200') {
my $req = HTTP::Request->parse($body);
$req->header('Requesting-Client', $hdr->{'requesting-client'});
my $res = $self->on_request->($req);
my $postback = sub {
my $res = shift;
# Duck typing for as_string, but accepts plaintext too for 200
unless (Scalar::Util::blessed($res) && $res->can('as_string')) {
my $content = $res;
$res = HTTP::Response->new(200);
lib/AnyEvent/ReverseHTTP.pm view on Meta::CPAN
label => "aedemo1234",
token => "mytoken",
);
$server->on_register(sub {
my $pub_url = shift;
});
$server->on_request(sub {
my $req = shift;
# $req is HTTP::Request, return HTTP::Response or AnyEvent::CondVar that receives it
});
my $guard = $server->connect;
AnyEvent->condvar->recv;
=head1 DESCRIPTION
AnyEvent::ReverseHTTP is an AnyEvent module that acts as a Reverse
HTTP server (which is actually a polling client for Reverse HTTP
( run in 0.539 second using v1.01-cache-2.11-cpan-de7293f3b23 )