Skip to content

Mojo::IOLoop::Client

Yuki Kimoto edited this page Jun 3, 2014 · 12 revisions

Mojolicious API リファレンス

名前

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::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からすべてのメソッドを 継承しており、次の新しいメソッドを実装しています。

connect

$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

接続先のポート。デフォルトは80tlsオプションがあれば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を反映)

Clone this wiki locally