Provided by: libprotocol-websocket-perl_0.26-3_all
NAME
Protocol::WebSocket::Frame - WebSocket Frame
SYNOPSIS
# Create frame my $frame = Protocol::WebSocket::Frame->new('123'); $frame->to_bytes; # Parse frames my $frame = Protocol::WebSocket::Frame->new; $frame->append(...); $f->next; # get next message $f->next; # get another next message
DESCRIPTION
Construct or parse a WebSocket frame.
RANDOM MASK GENERATION
By default built-in "rand" is used, this is not secure, so when Math::Random::Secure is installed it is used instead.
METHODS
"new" Protocol::WebSocket::Frame->new('data'); # same as (buffer => 'data') Protocol::WebSocket::Frame->new(buffer => 'data', type => 'close'); Create a new Protocol::WebSocket::Frame instance. Automatically detect if the passed data is a Perl string (UTF-8 flag) or bytes. When called with more than one arguments, it takes the following named arguments (all of them are optional). "buffer" => STR (default: "") The payload of the frame. "type" => TYPE_STR (default: "text") The type of the frame. Accepted values are: continuation text binary ping pong close "opcode" => INT (default: 1) The opcode of the frame. If "type" field is set to a valid string, this field is ignored. "fin" => BOOL (default: 1) "fin" flag of the frame. "fin" flag must be 1 in the ending frame of fragments. "masked" => BOOL (default: 0) If set to true, the frame will be masked. "version" => VERSION_STR (default: 'draft-ietf-hybi-17') WebSocket protocol version string. See Protocol::WebSocket for valid version strings. "is_continuation" Check if frame is of continuation type. "is_text" Check if frame is of text type. "is_binary" Check if frame is of binary type. "is_ping" Check if frame is a ping request. "is_pong" Check if frame is a pong response. "is_close" Check if frame is of close type. "opcode" $opcode = $frame->opcode; $frame->opcode(8); Get/set opcode of the frame. "masked" $masked = $frame->masked; $frame->masked(1); Get/set masking of the frame. "append" $frame->append($chunk); Append a frame chunk. Beware that this method is destructive. It makes $chunk empty unless $chunk is read-only. "next" $frame->append(...); $frame->next; # next message Return the next message as a Perl string (UTF-8 decoded). "next_bytes" Return the next message as is. "to_bytes" Construct a WebSocket message. "max_payload_size" The maximum size of the payload. You may set this to 0 or "undef" to disable checking the payload size.