模块:莫霍::交易

名称

Mojo::事务-事务基类

简介

包Mojo::Transaction::MyTransaction;使用Mojo::Base“Mojo::Transaction”;子客户端读取{…}子客户端写入{…}子服务器_读取{…}子服务器写入{…}

描述

Mojo::交易是事务的抽象基类,如Mojo::Transaction::HTTPMojo::Transaction::WebSocket.

活动

Mojo::交易从继承所有事件Mojo::EventEmitter并且可以发射以下新的。

连接

$tx->打开(连接=>sub($tx,$connection){…});

当连接已分配给事务时发出。

完成

$tx->打开(完成=>sub($tx){…});

事务完成时发出。

属性

Mojo::交易实现以下属性。

保持活动状态

我的$bool=$tx->kept_alive;$tx=$tx->kept_alive($bool);

连接一直处于活动状态。

本地地址

我的$地址=$tx->local_address;$tx=$tx->本地地址('127.0.0.1');

本地接口地址。

本地端口

我的$port=$tx->local_port;$tx=$tx->local_port(8080);

本地接口端口。

原始远程地址

我的$地址=$tx->original_remote_address;$tx=$tx->原始远程地址('127.0.0.1');

远程接口地址。

远程端口

我的$port=$tx->remote_port;$tx=$tx->远程端口(8081);

远程接口端口。

请求

我的$req=$tx->req;$tx=$tx->req(Mojo::消息::请求->新);

HTTP请求,默认为Mojo::消息::请求对象。

#访问请求信息我的$method=$tx->req->方法;我的$url=$tx->req->url->to_abs;我的$info=$tx->req->url->to_abs->userinfo;my$host=$tx->req->url->toabs->host;my$agent=$tx->req->headers->user_agent;my$custom=$tx->req->headers->header(“自定义标题”);my$bytes=$tx->req->body;我的$str=$tx->req->text;my$hash=$tx->req->params->to_hash;我的$all=$tx->req->上传;my$value=$tx->req->json;我的$foo=$tx->req->json('/23/foo');我的$dom=$tx->req->dom;my$bar=$tx->req->dom('div.bar')->first->text;

物件

我的$res=$tx->res;$tx=$tx->res(Mojo::消息::响应->新);

HTTP响应,默认为Mojo::消息::响应对象。

#访问响应信息我的$code=$tx->res->code;我的$message=$tx->res->message;我的$server=$tx->res->headers->server;my$custom=$tx->res->headers->header(“自定义标题”);my$bytes=$tx->res->body;我的$str=$tx->res->text;my$value=$tx->res->json;我的$foo=$tx->res->json('/23/foo');我的$dom=$tx->res->dom;my$bar=$tx->res->dom('div.bar')->first->text;

方法

Mojo::交易从继承所有方法Mojo::EventEmitter并实现了以下新功能。

客户端(_R)

$tx->client_read($字节);

读取数据客户端,用于实现用户代理,例如Mojo::用户代理。表示在子类中重载。

客户端写入

my$bytes=$tx->client_write;

写入数据客户端,用于实现用户代理,例如Mojo::用户代理。表示在子类中重载。

关闭

$tx=$tx->已关闭;

等同于“已完成”,但也指示已发送所有事务数据。

完整的

$tx=$tx->已完成;

用于完成事务的低级方法。

连接

我的$id=$tx->连接;$tx=$tx->连接($id);

连接标识符。

错误

我的$err=$tx->错误;

获取请求或响应错误并返回不设防的如果没有错误。

#较长版本我的$err=$tx->req->error | |$tx->res->erro;#检查4x/5xx响应和连接错误if(我的$err=$tx->error){如果$err->{code},则返回“$err->{code{response:$err-+{message}”;die“连接错误:$err->{message}”;}

已完成(_F)

我的$bool=$tx->is_finished;

检查交易是否完成。

is_websocket

我的$bool=$tx->iswebsocket;

错,这不是Mojo::Transaction::WebSocket对象。

远程地址

我的$地址=$tx->remote_address;$tx=$tx->远程地址('127.0.0.1');

等同于“原始远程地址”除非“需求”已通过Mojo::Message::Request中的“reverse_proxy”。如果是,则最后一个值为X向前-对于返回标头。此外,如果Mojo::Message::Request中的“trusted_proxies”也提供了,则原始地址必须是可信的,并且任何X向前-对于受信任的条目将被忽略,返回最后一个不受信任的地址,如果所有条目都受信任,则返回第一个地址。

结果

我的$res=$tx->结果;

返回Mojo::消息::响应对象来自“雷斯”或在发生连接错误时死亡。

#细粒度响应处理(死于连接错误)我的$res=$tx->结果;if($res->issuccess){说$res->主体}elsif($res->is_error){说$res->消息}elsif($res->code==301){say$res->headers->location}否则{说“随便…”}

服务器_读取

$tx->server_read($bytes);

读取数据服务器端,用于实现web服务器,如Mojo::服务器::守护进程。表示在子类中重载。

服务器写入

my$字节=$tx->server_write;

写入数据服务器端,用于实现web服务器,如Mojo::服务器::守护进程。表示在子类中重载。

另请参阅

Mojolicious公司,Mojolicious::指南,https://mojolicious.org.