⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 http.pm

📁 Punjab is a jabber XMLRPC/SOAP/REST client. It is a xmlrpc, soap, or REST server that allows for p
💻 PM
字号:
package PunJab::Server::HTTP;use warnings;use strict;use POE qw/ Component::Server::TCP Filter::HTTPD /;use HTTP::Date;use HTTP::Status;use File::Spec;use Exporter();use PunJab::Util;sub new(){	my ($class, $config, $handler, $streamer, $error, $alias, $filter) = @_;		die "handler must be a coderef"	    if defined($handler) and ref($handler) ne 'CODE';	die "streamer must be a coderef"	    if defined($streamer) and ref($streamer) ne 'CODE';	die "error must be a coderef"	    if defined($error) and ref($error) ne 'CODE';	$alias = 'web_server' if not defined $alias;	$filter = 'POE::Filter::HTTPD' if not defined $filter;	POE::Component::Server::TCP->new(		Alias => $alias,			 		Port => $config->{'port'},		ClientFilter => $filter,		ClientInput => $handler,		ClientFlushed => $streamer,                ClientError => $error,		#ClientShutdownOnError => 1,			   	        InlineStates => { 'send_response' => \&send_response, },		#SessionParams => [ options => { debug => $config->{'debug'},		#				trace => $config->{'debug'}, } ],			);}sub http_error(){    my ($syscall_name, $error_number, $error_string) = @_[ARG0, ARG1, ARG2];        warn $syscall_name;    warn $error_number;    warn "Error : ".$error_string;}sub send_response(){    my ( $kernel, $heap) = @_[ KERNEL, HEAP];    my $response = $_[ARG1]->[0];    my $stream   = $_[ARG1]->[1];    my $buffer   = $_[ARG1]->[2];        $heap->{client}->put($response) if defined $heap->{client} and defined $heap->{'stream_count'} and $heap->{'stream_count'} == 0;            $heap->{buffer} = $buffer if defined $stream and defined $buffer;      if (defined $heap->{'stream_count'} and $heap->{'stream_count'} >  0) {		$heap->{client}->put("\n") if defined $heap->{'client'};	&debug("we died") if not defined $heap->{'client'};    } else {		$kernel->yield("shutdown") if not defined $stream;    }    return;}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -