The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

AnyEvent::WebSocket::Connection - WebSocket connection for AnyEvent

VERSION

version 0.22

SYNOPSIS

 # send a message through the websocket...
 $connection->send('a message');
 
 # recieve message from the websocket...
 $connection->on(each_message => sub {
   # $connection is the same connection object
   # $message isa AnyEvent::WebSocket::Message
   my($connection, $message) = @_;
   ...
 });
 
 # handle a closed connection...
 $connection->on(finish => sub {
   # $connection is the same connection object
   my($connection) = @_;
   ...
 });
 
 # close an opened connection
 # (can do this either inside or outside of
 # a callback)
 $connection->close;

(See AnyEvent::WebSocket::Client or AnyEvent::WebSocket::Server on how to create a connection)

DESCRIPTION

This class represents a WebSocket connection with a remote server or a client.

If the connection object falls out of scope then the connection will be closed gracefully.

This class was created for a client to connect to a server via AnyEvent::WebSocket::Client, and was later extended to work on the server side via AnyEvent::WebSocket::Server. Once a WebSocket connection is established, the API for both client and server is identical.

ATTRIBUTES

handle

The underlying AnyEvent::Handle object used for the connection. WebSocket handshake MUST be already completed using this handle. You should not use the handle directly after creating AnyEvent::WebSocket::Connection object.

Usually only useful for creating server connections, see below.

masked

If set to true, it masks outgoing frames. The default is false.

METHODS

$connection->send($message)

Send a message to the other side. $message may either be a string (in which case a text message will be sent), or an instance of AnyEvent::WebSocket::Message.

$connection->on($event => $cb)

Register a callback to a particular event.

For each event $connection is the AnyEvent::WebSocket::Connection and and $message is an AnyEvent::WebSocket::Message (if available).

each_message

 $cb->($connection, $message)

Called each time a message is received from the WebSocket.

next_message

 $cb->($connection, $message)

Called only for the next message received from the WebSocket.

finish

 $cb->($connection)

Called when the connection is terminated

$connection->close

Close the connection.

SERVER CONNECTIONS

Although written originally to work with AnyEvent::WebSocket::Client, this class was designed to be used for either client or server WebSocket connections. For details, contact the author and/or take a look at the source for AnyEvent::WebSocket::Client and the examples that come with Protocol::WebSocket.

DEPRECATED METHODS

The methods in this section are deprecated and may be removed from a future version of this class. They should not be used for new code, and are only remain documented here to aid in understanding legacy code that use them.

$connection->on_each_message($cb)

Register a callback to be called on each subsequent message received. The message itself will be passed in as the only parameter to the callback. The message is a decoded text string.

$connection->on_next_message($cb)

Register a callback to be called the next message received. The message itself will be passed in as the only parameter to the callback. The message is a decoded text string.

$connection->on_finish($cb)

Register a callback to be called when the connection is closed.

SEE ALSO

AUTHOR

author: Graham Ollis <plicease@cpan.org>

contributors:

Toshio Ito

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Graham Ollis.

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