名前

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日更新)

関連情報