AnyEvent::Connection(3pm)

AnyEvent::Connection3pm

Base class for tcp connectful clients

Usage

    package MyTCPClient;
    use base 'AnyEvent::Connection';
    package main;
    my $client = MyTCPClient->new(
        host => 'localhost',
        port => 12345,
    );
    $client->reg_cb(
        connected => sub {
            my ($client,$connection,$host,$port) = @_;
            # ...
            $client->after(
                $interval, sub {
                    # Called after interval, if connection still alive
                }
            );
        }
        connfail = sub {
            my ($client,$reason) = @_;
            # ...
        },
        disconnect => sub {
            my ($client,$reason) = @_;
        },
        error => sub {
            my ($client,$error) = @_;
            # Called in error conditions for callbackless methods
        },
    );
    $client->connect;

Events

connected ($connobject, $host, $port)

Called when client get connected.

connfail

Called, when client fails to connect

disconnect

Called whenever client disconnects

error

Called in error conditions for callbackless methods (for ex: when calling push_write on non-connected client)

Options

host

Host to connect to

port

Port to connect to

timeout [ = 3 ]

Connect/read/write timeout in seconds

reconnect [ = 1 ]

If true, automatically reconnect after disconnect/connfail after delay $reconnect seconds

rawcon [ = AnyEvent::Connection::Raw ]

Class that implements low-level connection

Operation methods

new

Cleates connection object (see OPTIONS)

connect

Begin connection

disconnect ($reason)

Close current connection. reason is optional

reconnect

Close current connection and establish a new one

after($interval, $cb->())

Helper method. AE::timer(after), associated with current connection

Will be destroyed if connection is destroyed, so no timer invocation after connection destruction.

periodic($interval, $cb->())

Helper method. AE::timer(periodic), associated with current connection

Will be destroyed if connection is destroyed, so no timer invocation after connection destruction.

periodic_stop()

If called within periodic callback, periodic will be stopped.

    my $count;
    $client->periodic(1,sub {
        $client->periodic_stop if ++$count > 10;
    });
    
    # callback will be called only 10 times;
destroy

Close connection, destroy all associated objects and timers, clean self

Connect methods

When connected, there are some methods, that proxied to raw connection or to AE::Handle

push_write

See AE::Handle::push_write

push_read

See AE::Handle::push_read

unshift_read

See AE::Handle::unshift_read

say

Same as push_write + newline

reply

Same as push_write + newline

For next methods there is a feature. Callback will be called in any way, either by successful processing or by error or object destruction

recv($bytes, %args, cb => $cb->())

Similar to

    $fh->push_read(chunk => $bytes, $cb->());
command($data, %args, cb => $cb->());

Similar to

    $fh->push_write($data);
    $fh->push_read(line => $cb->());

Support

You can find documentation for this module with the perldoc command.

    perldoc AnyEvent::Connection

You can also look for information at:

•

RT: CPAN's request tracker

<http://rt.cpan.org/NoAuth/Bugs.html?Dist=AnyEvent-Connection>

•

AnnoCPAN: Annotated CPAN documentation

<http://annocpan.org/dist/AnyEvent-Connection>

•

CPAN Ratings

<http://cpanratings.perl.org/d/AnyEvent-Connection>

•

Search CPAN

<http://search.cpan.org/dist/AnyEvent-Connection/>

Acknowledgements

Releases

6 releases since Debian 8 (Jessie); the text changed 3 times.

  1. 8
  2. 9
  3. 10–11
  4. 12–13

Author

Mons Anderson, "<mons at cpan.org>"

Bugs

Please report any bugs or feature requests to "bug-anyevent-connection at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=AnyEvent-Connection>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

From libanyevent-connection-perl 0.06-6 in Debian 13 (Trixie). Parsed by carta from the page's man source.