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
Mojo::Transaction(3) User Contributed Perl Documentation Mojo::Transaction(3)

Mojo::Transaction - Transaction base class

  package Mojo::Transaction::MyTransaction;
  use Mojo::Base 'Mojo::Transaction';

  sub client_read  {...}
  sub client_write {...}
  sub server_read  {...}
  sub server_write {...}

Mojo::Transaction is an abstract base class for transactions, like Mojo::Transaction::HTTP and Mojo::Transaction::WebSocket.

Mojo::Transaction inherits all events from Mojo::EventEmitter and can emit the following new ones.

  $tx->on(connection => sub ($tx, $connection) {...});

Emitted when a connection has been assigned to transaction.

  $tx->on(finish => sub ($tx) {...});

Emitted when transaction is finished.

Mojo::Transaction implements the following attributes.

  my $bool = $tx->kept_alive;
  $tx      = $tx->kept_alive($bool);

Connection has been kept alive.

  my $address = $tx->local_address;
  $tx         = $tx->local_address('127.0.0.1');

Local interface address.

  my $port = $tx->local_port;
  $tx      = $tx->local_port(8080);

Local interface port.

  my $address = $tx->original_remote_address;
  $tx         = $tx->original_remote_address('127.0.0.1');

Remote interface address.

  my $port = $tx->remote_port;
  $tx      = $tx->remote_port(8081);

Remote interface port.

  my $req = $tx->req;
  $tx     = $tx->req(Mojo::Message::Request->new);

HTTP request, defaults to a Mojo::Message::Request object.

  # Access request information
  my $method = $tx->req->method;
  my $url    = $tx->req->url->to_abs;
  my $info   = $tx->req->url->to_abs->userinfo;
  my $host   = $tx->req->url->to_abs->host;
  my $agent  = $tx->req->headers->user_agent;
  my $custom = $tx->req->headers->header('Custom-Header');
  my $bytes  = $tx->req->body;
  my $str    = $tx->req->text;
  my $hash   = $tx->req->params->to_hash;
  my $all    = $tx->req->uploads;
  my $value  = $tx->req->json;
  my $foo    = $tx->req->json('/23/foo');
  my $dom    = $tx->req->dom;
  my $bar    = $tx->req->dom('div.bar')->first->text;

  my $res = $tx->res;
  $tx     = $tx->res(Mojo::Message::Response->new);

HTTP response, defaults to a Mojo::Message::Response object.

  # Access response information
  my $code    = $tx->res->code;
  my $message = $tx->res->message;
  my $server  = $tx->res->headers->server;
  my $custom  = $tx->res->headers->header('Custom-Header');
  my $bytes   = $tx->res->body;
  my $str     = $tx->res->text;
  my $value   = $tx->res->json;
  my $foo     = $tx->res->json('/23/foo');
  my $dom     = $tx->res->dom;
  my $bar     = $tx->res->dom('div.bar')->first->text;

Mojo::Transaction inherits all methods from Mojo::EventEmitter and implements the following new ones.

  $tx->client_read($bytes);

Read data client-side, used to implement user agents such as Mojo::UserAgent. Meant to be overloaded in a subclass.

  my $bytes = $tx->client_write;

Write data client-side, used to implement user agents such as Mojo::UserAgent. Meant to be overloaded in a subclass.

  $tx = $tx->closed;

Same as "completed", but also indicates that all transaction data has been sent.

  $tx = $tx->completed;

Low-level method to finalize transaction.

  my $id = $tx->connection;
  $tx    = $tx->connection($id);

Connection identifier.

  my $err = $tx->error;

Get request or response error and return "undef" if there is no error.

  # Longer version
  my $err = $tx->req->error || $tx->res->error;

  # Check for 4xx/5xx response and connection errors
  if (my $err = $tx->error) {
    die "$err->{code} response: $err->{message}" if $err->{code};
    die "Connection error: $err->{message}";
  }

  my $bool = $tx->is_finished;

Check if transaction is finished.

  my $bool = $tx->is_websocket;

False, this is not a Mojo::Transaction::WebSocket object.

  my $address = $tx->remote_address;
  $tx         = $tx->remote_address('127.0.0.1');

Same as "original_remote_address" unless "req" has been performed via a "reverse_proxy" in Mojo::Message::Request. If so then the last value of "X-Forwarded-For" header is returned. Additionally if "trusted_proxies" in Mojo::Message::Request are also provided then the original address must be trusted and any "X-Forwarded-For" entries that are trusted are ignored, returning the last untrusted address or the first address if all are trusted.

  my $res = $tx->result;

Returns the Mojo::Message::Response object from "res" or dies if a connection error has occurred.

  # Fine grained response handling (dies on connection errors)
  my $res = $tx->result;
  if    ($res->is_success)  { say $res->body }
  elsif ($res->is_error)    { say $res->message }
  elsif ($res->code == 301) { say $res->headers->location }
  else                      { say 'Whatever...' }

  $tx->server_read($bytes);

Read data server-side, used to implement web servers such as Mojo::Server::Daemon. Meant to be overloaded in a subclass.

  my $bytes = $tx->server_write;

Write data server-side, used to implement web servers such as Mojo::Server::Daemon. Meant to be overloaded in a subclass.

Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.
2021-12-08 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.