table of contents
Protocol::WebSocket::Frame(3pm) | User Contributed Perl Documentation | Protocol::WebSocket::Frame(3pm) |
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.
2019-03-13 | perl v5.40.0 |