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