NAME

Mojo::Transaction::WebSocket - WebSocket Transaction Container

SYNOPSIS

use Mojo::Transaction::WebSocket;

DESCRIPTION

Mojo::Transaction::WebSocket is a container and state machine for WebSocket transactions.

ATTRIBUTES

Mojo::Transaction::WebSocket inherits all attributes from Mojo::Transaction and implements the following new ones.

handshake

my $handshake = $ws->handshake;
$ws           = $ws->handshake(Mojo::Transaction::HTTP->new);

The original handshake transaction.

read_buffer

my $buffer = $ws->read_buffer;
$ws        = $ws->read_buffer(Mojo::ByteStream->new);

Buffer for incoming data.

receive_message

my $cb = $ws->receive_message;
$ws    = $ws->receive_message(sub {...});

The callback that receives decoded messages one by one.

$ws->receive_message(sub {
    my ($self, $message) = @_;
});

write_buffer

my $buffer = $ws->write_buffer;
$ws        = $ws->write_buffer(Mojo::ByteStream->new);

Buffer for outgoing data.

METHODS

Mojo::Transaction::WebSocket inherits all methods from Mojo::Transaction and implements the following new ones.

client_read

$ws->client_read($data);

Read raw WebSocket data, only used by clients.

client_write

my $chunk = $ws->client_write;

Raw WebSocket data to write, only used by clients.

connection

my $connection = $ws->connection;

The connection this websocket is using.

finish

$ws->finish;

Finish the WebSocket connection gracefully.

is_websocket

my $is_websocket = $ws->is_websocket;

True.

local_address

my $local_address = $ws->local_address;

The local address of this WebSocket.

local_port

my $local_port = $ws->local_port;

The local port of this WebSocket.

remote_address

my $remote_address = $ws->remote_address;

The remote address of this WebSocket.

remote_port

my $remote_port = $ws->remote_port;

The remote port of this WebSocket.

req

my $req = $ws->req;

The original handshake request.

res

my $req = $ws->res;

The original handshake response.

send_message

$ws->send_message('Hi there!');

Send a message over the WebSocket, encoding and framing will be handled transparently.

server_read

$ws->server_read($data);

Read raw WebSocket data, only used by servers.

server_write

my $chunk = $ws->server_write;

Raw WebSocket data to write, only used by servers.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicious.org.