Skip to content

Mojo::IOLoop::Client

Yuki Kimoto edited this page Apr 14, 2020 · 12 revisions

サイト引っ越しのお知らせ

Mojoliciousドキュメント 日本語訳は以下に引っ越しました。

Mojo::IOLoop::Client - Mojoliciousドキュメント 日本語訳

独自ドメインのページで、Giblogを使って、サイトを再構成しました。

ドキュメントの各ページのタイトルが正しく検索エンジンで表示されなかったことが課題で、それを解決することが目的です。

サイトの更新は、新しいページ行われます。

新しいサイトを検索エンジンで発見できるようになったタイミングで、このページのコンテンツは、削除されます。

Mojolicious API リファレンス

名前

Mojo::IOLoop::Client - 非同期のTCP/IPとUNIXドメインソケットのクライアント

使い方

use Mojo::IOLoop::Client;

# ソケット接続を生成する
my $client = Mojo::IOLoop::Client->new;
$client->on(connect => sub {
  my ($client, $handle) = @_;
  ...
});
$client->on(error => sub {
  my ($client, $err) = @_;
  ...
});
$client->connect(address => 'example.com', port => 80);

# 必要であればリアクターを開始
$client->reactor->start unless $client->reactor->is_running;

説明

Mojo::IOLoop::ClientMojo::IOLoopのためにTCP接続をオープンします。

イベント

Mojo::IOLoop::ClientMojo::EventEmitterからすべての イベントを継承しており、次の新しいイベントを発行します。

connect

$client->on(connect => sub {
  my ($client, $handle) = @_;
});

接続が確立されたとき一度だけ発行されます。

error

$client->on(error => sub {
  my ($client, $err) = @_;
  ...
});

コネクション時にエラーが発生したときに発行されます。処理されなければ、致命的です。

属性

Mojo::IOLoop::Clientは次の属性を実装しています。

reactor

my $reactor = $client->reactor;
$client     = $client->reactor(Mojo::Reactor::Poll->new);

低レベルのイベントウオッチャーです。 デフォルトは、グローバルなMojo::IOLoopシングルトンのreactor属性の値です。

メソッド

Mojo::IOLoop::ClientMojo::EventEmitterからすべてのメソッドを 継承しており、次の新しいメソッドを実装しています。

can_nnr

my $bool = Mojo::IOLoop::Client->can_nnr;

Net::DNS::Nativeが0.15以上でインストールされていて、ノンブロッキング名前解決が有効になっていれば、真になります。

can_socks

my $bool = Mojo::IOLoop::Client->can_socks;

IO::Socket::SOCKSが0.64以上でインストールされており、SOCK5のサポートが有効であれば、真になります。

connect

$client->connect(address => '127.0.0.1', port => 3000);
$client->connect({address => '127.0.0.1', port => 3000});

リモートホストに対してTCPコネクションを開きます。 ノンブロッキングの名前解決は、Net::DNS::Native (0.15+)と IO::Socket::Socks (0.64)のSOCKS5に 、IPv6のサポートはIO::Socket::INET6(0.20+) に、 TLSのサポートはIO::Socket::SSL (2.009+)に 依存していることに注意してください。

下記のオプションが現在利用できます。

address
address => 'mojolicio.us'

接続先のアドレス、あるいはホスト名。デフォルトは、127.0.0.1

handle
handle => $handle

すでに準備されているハンドルを使用します。

local_address
local_address => '127.0.0.1'

バインドされるローカルアドレス

port
port => 80

接続先のポート。デフォルトは80tlsオプションがあれば443

socks_address
socks_address => '127.0.0.1'

コネクションが利用するSOCKS5プロキシサーバーのアドレス、あるいはホスト名。

socks_pass
socks_pass => 'secr3t'

SOCKS5認証が利用するパスワード。

socks_port
socks_port => 9050

接続に利用するSOCKS5プロキシサーバーのポート。

socks_user
socks_user => 'sri'

SOCKS5認証が利用するユーザー名。

timeout
timeout => 15

確立されつつある接続がキャンセルされるまでの最大の秒数。 デフォルトは10

tls
tls => 1

TLSを有効にする。

tls_ca
tls_ca => '/etc/tls/ca.crt'

TLS認証局ファイルへのパス。 ホスト名の検査も有効になります。

tls_cert
tls_cert => '/etc/tls/client.crt'

TLS証明書ファイルへのパス。

tls_key
tls_key => '/etc/tls/client.key'

TLSキーファイルへのパス。

参考

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

(Mojolicious 8.12を反映。5月22日更新)

Clone this wiki locally