GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Feersum::Connection(3) User Contributed Perl Documentation Feersum::Connection(3)

Feersum::Connection - HTTP connection encapsulation

For a streaming response:

    Feersum->endjinn->request_handler(sub {
        my $req = shift; # this is a Feersum::Connection object
        my $env = $req->env();
        my $w = $req->start_streaming(200, ['Content-Type' => 'text/plain']);
        # then immediately or after some time:
        $w->write("Ergrates ");
        $w->write(\"FTW.");
        $w->close();
    });

For a response with a Content-Length header:

    Feersum->endjinn->request_handler(sub {
        my $req = shift; # this is a Feersum::Connection object
        my $env = $req->env();
        $req->start_whole_response(200, ['Content-Type' => 'text/plain']);
        $req->write_whole_body(\"Ergrates FTW.");
    });

Encapsulates an HTTP connection to Feersum. It's roughly analogous to an "Apache::Request" or "Apache2::Connection" object, but differs significantly in functionality.

Until Keep-Alive functionality is supported (if ever) this means that a connection is also a request.

See Feersum for more examples on usage.

"my $env = $req->env()"
Obtain an environment hash. This hash contains the same entries as for a PSGI handler environment hash. See Feersum for details on the contents.

This is a method instead of a parameter so that future versions of Feersum can request a slice of the hash for speed.

"my $w = $req->start_streaming($code, \@headers)"
A full HTTP header section is sent with "Transfer-Encoding: chunked" (or "Connection: close" for HTTP/1.0 clients).

Returns a "Feersum::Connection::Writer" handle which should be used to complete the response. See Feersum::Connection::Handle for methods.

"$req->send_response($code, \@headers, $body)"
"$req->send_response($code, \@headers, \@body)"
Respond with a full HTTP header (including "Content-Length") and body.

Returns the number of bytes calculated for the body.

"$req->force_http10"
"$req->force_http11"
Force the response to use HTTP/1.0 or HTTP/1.1, respectively.

Normally, if the request was made with 1.1 then Feersum uses HTTP/1.1 for the response, otherwise HTTP/1.0 is used (this includes requests made with the HTTP "0.9" non-declaration).

For streaming under HTTP/1.1 "Transfer-Encoding: chunked" is used, otherwise a "Connection: close" stream-style is used (with the usual non-guarantees about delivery). You may know about certain user-agents that support/don't-support T-E:chunked, so this is how you can override that.

Supposedly clients and a lot of proxies support the "Connection: close" stream-style, see support in Varnish at http://www.varnish-cache.org/trac/ticket/400

"$req->fileno"
The socket file-descriptor number for this connection.
"$req->response_guard($guard)"
Register a guard to be triggered when the response is completely sent and the socket is closed. A "guard" in this context is some object that will do something interesting in its DESTROY/DEMOLISH method. For example, Guard.

Jeremy Stashewsky, "stash@cpan.org"

Copyright (C) 2010 by Jeremy Stashewsky & Socialtext Inc.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.

2020-12-05 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.