NAME

Hypersonic::WebSocket - High-level WebSocket connection API (JIT-compiled)

SYNOPSIS

my $ws = Hypersonic::WebSocket->new($stream, protocol => 'chat');

$ws->on(open => sub {
    print "Connected!\n";
});

$ws->on(message => sub {
    my ($data) = @_;
    $ws->send("Echo: $data");
});

$ws->on(close => sub {
    my ($code, $reason) = @_;
    print "Closed: $code $reason\n";
});

DESCRIPTION

Event-driven WebSocket API for Hypersonic. All methods are JIT-compiled to native C code via XS for maximum performance.

METHODS

new($stream, %opts)

Create new WebSocket wrapper. Options: fd, request, protocol, max_message_size.

on($event, $handler)

Register event handler. Events: open, message, binary, ping, pong, close, error.

emit($event, @args)

Emit event to registered handler.

accept($handshake)

Accept WebSocket upgrade. Returns 1 on success, 0 on failure.

send($data)

Send text message. Returns 1 on success, 0 on failure.

send_binary($data)

Send binary message.

ping($data)

Send ping frame.

pong($data)

Send pong frame.

close($code, $reason)

Initiate close handshake.

handle_close($code, $reason)

Handle received close frame.

handle_message($opcode, $data)

Handle received message frame.

process_data($data)

Process incoming WebSocket data.

state, protocol, stream, fd, request

Accessors.

is_open, is_closing, is_closed

State checks.

param($name), header($name)

Access request parameters and headers.

CONSTANTS

CONNECTING (0), OPEN (1), CLOSING (2), CLOSED (3)

SEE ALSO

Hypersonic::Protocol::WebSocket, Hypersonic::Protocol::WebSocket::Frame