Provided by: libprotocol-websocket-perl_0.26-3_all bug

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.