NAME

Net::Async::WebSocket::Client - connect to a WebSocket server using IO::Async

SYNOPSIS

use IO::Async::Loop;
use Net::Async::WebSocket::Client;

my $client = Net::Async::WebSocket::Client->new(
   on_text_frame => sub {
      my ( $self, $frame ) = @_;
      print $frame;
   },
);

my $loop = IO::Async::Loop->new;
$loop->add( $client );

$client->connect(
   url => "ws://$HOST:$PORT/",
)->then( sub {
   $client->send_text_frame( "Hello, world!\n" );
})->get;

$loop->run;

DESCRIPTION

This subclass of Net::Async::WebSocket::Protocol connects to a WebSocket server to establish a WebSocket connection for passing frames.

METHODS

The following methods documented with a trailing call to ->get return Future instances.

connect

$self->connect( %params )->get

Connect to a WebSocket server. Takes the following named parameters:

url => STRING

URL to provide to WebSocket handshake. This is also used to infer the host and service name (port number) if not otherwise supplied.

The returned Future returns the client instance itself, making it useful in chaining constructors.

connect (void)

$self->connect( %params )

When not returning a Future, the following additional parameters provide continuations:

on_connected => CODE

CODE reference to invoke when the handshaking is complete.

connect_handle

$client->connect_handle( $handle, %params )->get

Sets the read and write handles to the IO reference given, then performs the initial handshake using the parameters given. These are as for connect.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>