manpagez: man pages & more
man Mojo::WebSocket(3)
Home | html | info | man
Mojo::WebSocket(3)    User Contributed Perl Documentation   Mojo::WebSocket(3)




NAME

       Mojo::WebSocket - The WebSocket protocol


SYNOPSIS

         use Mojo::WebSocket qw(WS_TEXT build_frame parse_frame);

         my $bytes = build_frame 0, 1, 0, 0, 0, WS_TEXT, 'Hello World!';
         my $frame = parse_frame \$bytes, 262144;


DESCRIPTION

       Mojo::WebSocket implements the WebSocket protocol as described in RFC
       6455 <https://tools.ietf.org/html/rfc6455>.  Note that 64-bit frames
       require a Perl with support for quads or they are limited to 32-bit.


FUNCTIONS

       Mojo::WebSocket implements the following functions, which can be
       imported individually.

   build_frame
         my $bytes = build_frame $masked, $fin, $rsv1, $rsv2, $rsv3, $op, $payload;

       Build WebSocket frame.

         # Masked binary frame with FIN bit and payload
         say build_frame 1, 1, 0, 0, 0, WS_BINARY, 'Hello World!';

         # Text frame with payload but without FIN bit
         say build_frame 0, 0, 0, 0, 0, WS_TEXT, 'Hello ';

         # Continuation frame with FIN bit and payload
         say build_frame 0, 1, 0, 0, 0, WS_CONTINUATION, 'World!';

         # Close frame with FIN bit and without payload
         say build_frame 0, 1, 0, 0, 0, WS_CLOSE, '';

         # Ping frame with FIN bit and payload
         say build_frame 0, 1, 0, 0, 0, WS_PING, 'Test 123';

         # Pong frame with FIN bit and payload
         say build_frame 0, 1, 0, 0, 0, WS_PONG, 'Test 123';

   challenge
         my $bool = challenge Mojo::Transaction::WebSocket->new;

       Check WebSocket handshake challenge.

   client_handshake
         my $tx = client_handshake Mojo::Transaction::HTTP->new;

       Perform WebSocket handshake client-side.

   parse_frame
         my $frame = parse_frame \$bytes, $limit;

       Parse WebSocket frame.

         # Parse single frame and remove it from buffer
         my $frame = parse_frame \$buffer, 262144;
         say "FIN: $frame->[0]";
         say "RSV1: $frame->[1]";
         say "RSV2: $frame->[2]";
         say "RSV3: $frame->[3]";
         say "Opcode: $frame->[4]";
         say "Payload: $frame->[5]";

   server_handshake
         my $tx = server_handshake Mojo::Transaction::HTTP->new;

       Perform WebSocket handshake server-side.


CONSTANTS

       Mojo::WebSocket implements the following constants, which can be
       imported individually.

   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.


DEBUGGING

       You can set the "MOJO_WEBSOCKET_DEBUG" environment variable to get some
       advanced diagnostics information printed to "STDERR".

         MOJO_WEBSOCKET_DEBUG=1


SEE ALSO

       Mojolicious(3), Mojolicious::Guides(3), <https://mojolicious.org>.



perl v5.32.1                      2021-12-08                Mojo::WebSocket(3)

mojolicious 9.260.0 - Generated Mon May 30 10:57:05 CDT 2022
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.