|
NAMEMojo::WebSocket - The WebSocket protocolSYNOPSISuse 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; DESCRIPTIONMojo::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.FUNCTIONSMojo::WebSocket implements the following functions, which can be imported individually.build_framemy $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'; challengemy $bool = challenge Mojo::Transaction::WebSocket->new; Check WebSocket handshake challenge. client_handshakemy $tx = client_handshake Mojo::Transaction::HTTP->new; Perform WebSocket handshake client-side. parse_framemy $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_handshakemy $tx = server_handshake Mojo::Transaction::HTTP->new; Perform WebSocket handshake server-side. CONSTANTSMojo::WebSocket implements the following constants, which can be imported individually.WS_BINARYOpcode for "Binary" frames.WS_CLOSEOpcode for "Close" frames.WS_CONTINUATIONOpcode for "Continuation" frames.WS_PINGOpcode for "Ping" frames.WS_PONGOpcode for "Pong" frames.WS_TEXTOpcode for "Text" frames.DEBUGGINGYou can set the "MOJO_WEBSOCKET_DEBUG" environment variable to get some advanced diagnostics information printed to "STDERR".MOJO_WEBSOCKET_DEBUG=1 SEE ALSOMojolicious, Mojolicious::Guides, <https://mojolicious.org>.
Visit the GSP FreeBSD Man Page Interface. |