-
Notifications
You must be signed in to change notification settings - Fork 7
Mojo::IOLoop::Client
Mojo::IOLoop::Client - 非同期のTCPクライアント
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::ClientはMojo::IOLoopのためにTCP接続をオープンします。
Mojo::IOLoop::ClientはMojo::EventEmitterからすべての イベントを継承しており、次の新しいイベントを発行します。
$client->on(connect => sub {
my ($client, $handle) = @_;
});
接続が確立されたとき一度だけ安全に発行されます。
$client->on(error => sub {
my ($client, $err) = @_;
...
});
コネクション時にエラーが発生したときに発行されます。処理されなければ、致命的です。
Mojo::IOLoop::Clientは次の属性を実装しています。
my $reactor = $client->reactor;
$client = $client->reactor(Mojo::Reactor::Poll->new);
低レベルのイベントウオッチャーです。 デフォルトは、グローバルなMojo::IOLoopシングルトンのreactor
属性の値です。
Mojo::IOLoop::ClientはMojo::EventEmitterからすべてのメソッドを 継承しており、次の新しいメソッドを実装しています。
$client->connect(address => '127.0.0.1', port => 3000);
リモートホストに対してTCPコネクションを開きます。 TLSのサポートはIO::Socket::SSL (1.84+) に、IPv6のサポートはIO::Socket::INET6(0.20+) に依存していることに注意してください。
下記のオプションが現在利用できます。
address
-
address => 'mojolicio.us'
接続先のアドレス、あるいはホスト名。
handle
-
handle => $handle
すでに準備されているハンドルを使用します。
local_address
-
local_address => '127.0.0.1'
バインドされるローカルアドレス
port
-
port => 80
接続先のポート。デフォルトは
80
。tls
オプションがあれば443
。 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 5.03を反映)
Mojolicious日本語訳は「Perlゼミ制作」です。