---
name: "AnyEvent::Connection"
section: "3pm"
platform: "linux"
package: "libanyevent-connection-perl"
version: "0.06-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/AnyEvent::Connection"
---

# AnyEvent::Connection(3pm)

Base class for tcp connectful clients

## NAME

AnyEvent::Connection - Base class for tcp connectful clients

## SYNOPSIS

```
    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->());
  ```

## 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.

## 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

## COPYRIGHT & LICENSE

Copyright 2009 Mons Anderson, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
