Name
SPVM::Mojo::WebSocket - The WebSocket protocol
Description
Mojo::WebSocket class in SPVM has methods to do someting.
Usage
use Mojo::WebSocket;
my $bytes = Mojo::WebSocket->build_frame($frame);
my $frame = Mojo::WebSocket->parse_frame(\$bytes, 262144);
Enumerations
WS_BINARY
Opcode for Binary
frames.
WS_CLOSE
Opcode for Close
frames.
WS_CONTINUATION
Opcode for Continuation
frames.
WS_PING
Opcode for Ping
frames.
WS_PONG
Opcode for Pong
frames.
WS_TEXT
Opcode for Text
frames.
Class Methods
build_frame
static method build_frame : string ($frame : Mojo::WebSocket::Frame);
Build WebSocket frame.
Examples:
# Masked binary frame with FIN bit and payload
say Mojo::WebSocket->build_frame(Mojo::WebSocket::Frame->new(1, 1, 0, 0, 0, Mojo::WebSocket->WS_BINARY, "Hello World!"));
# Text frame with payload but without FIN bit
say Mojo::WebSocket->build_frame(Mojo::WebSocket::Frame->new(0, 0, 0, 0, 0, Mojo::WebSocket->WS_TEXT, "Hello "));
# Continuation frame with FIN bit and payload
say Mojo::WebSocket->build_frame(Mojo::WebSocket::Frame->new(0, 1, 0, 0, 0, Mojo::WebSocket->WS_CONTINUATION, "World!"));
# Close frame with FIN bit and without payload
say Mojo::WebSocket->build_frame(Mojo::WebSocket::Frame->new(0, 1, 0, 0, 0, Mojo::WebSocket->WS_CLOSE, ""));
# Ping frame with FIN bit and payload
say Mojo::WebSocket->build_frame(Mojo::WebSocket::Frame->new(0, 1, 0, 0, 0, Mojo::WebSocket->WS_PING, "Test 123"));
# Pong frame with FIN bit and payload
say Mojo::WebSocket->build_frame(Mojo::WebSocket::Frame->new(0, 1, 0, 0, 0, Mojo::WebSocket->WS_PONG, "Test 123"));
challenge
static method challenge : string ($tx : Mojo::Transaction::WebSocket);
Check WebSocket handshake challenge.
static method client_handshake : Mojo::Transaction::HTTP ($tx : Mojo::Transaction::HTTP);
parse_frame
static method parse_frame : Mojo::WebSocket::Frame ($buffer_ref : string[], $max : int);
server_handshake
static method server_handshake : Mojo::Transaction::HTTP ($tx : Mojo::Transaction::HTTP);
See Also
Copyright & License
Copyright (c) 2025 Yuki Kimoto
MIT License