Protoc...equest(3pm)

πŸ’– NAME πŸ’–

Protocol::WebSocket::Request β€” WebSocket Request, bestie. This page is repping the User Contributed Perl Documentation, and it's here to explain the request side of WebSocket life without making your brain do a lil error noise. 🫢


✨ SYNOPSIS ✨

okay so first up, constructor energy:

# Constructor
my $req = Protocol::WebSocket::Request->new(
    host          => 'example.com',
    resource_name => '/demo'
);
$req->to_string; # GET /demo HTTP/1.1
                 # Upgrade: WebSocket
                 # Connection: Upgrade
                 # Host: example.com
                 # Origin: http://example.com
                 # Sec-WebSocket-Key1: 32 0  3lD& 24+<    i u4  8! -6/4
                 # Sec-WebSocket-Key2: 2q 4  2  54 09064
                 #
                 # x#####

and now the parser era:

# Parser
my $req = Protocol::WebSocket::Request->new;
$req->parse("GET /demo HTTP/1.1\x0d\x0a");
$req->parse("Upgrade: WebSocket\x0d\x0a");
$req->parse("Connection: Upgrade\x0d\x0a");
$req->parse("Host: example.com\x0d\x0a");
$req->parse("Origin: http://example.com\x0d\x0a");
$req->parse(
    "Sec-WebSocket-Key1: 18x 6]8vM;54 *(5:  {   U1]8  z [  8\x0d\x0a");
$req->parse(
    "Sec-WebSocket-Key2: 1_ tx7X d  <  nw  334J702) 7]o}` 0\x0d\x0a");
$req->parse("\x0d\x0aTm[K T2u");

🌸 DESCRIPTION 🌸

Construct or parse a WebSocket request. That's the whole description, and honestly it ate. πŸ’…


πŸŽ€ ATTRIBUTES πŸŽ€

the attribute lineup is:

  • host
  • key1
  • key2
  • number1
  • number2
  • origin
  • resource_name

that's the full guest list from the page β€” no extra attributes hiding in the group chat. πŸ¦‹


πŸ’… METHODS πŸ’…

🌟 new 🌟

Create a new Protocol::WebSocket::Request instance. Fresh out the box. ✨

🌟 new_from_psgi 🌟

Create a new Protocol::WebSocket::Request instance from a PSGI environment. Here's the shape:

my $env = {
    HTTP_HOST => 'example.com',
    HTTP_CONNECTION => 'Upgrade',
    ...
};
my $req = Protocol::WebSocket::Request->new_from_psgi($env);

🌟 parse 🌟

Parse a WebSocket request. You can feed it a buffer or a handle:

$req->parse($buffer);
$req->parse($handle);
Heads up: the incoming buffer is modified. That's not a drill, bestie β€” the page says it right there. 😭

🌟 to_string 🌟

Construct a WebSocket request. It's giving builder energy. πŸ”₯

🌟 connection 🌟

$self->connection;

A shortcut for "$self-"field('Connection')>.

🌟 cookies 🌟

cookies is on the method list. The page doesn't give it a description, so I'm not gonna invent one. Respect the mystery. πŸ™ˆ

🌟 upgrade 🌟

$self->upgrade;

A shortcut for "$self-"field('Upgrade')>.


k bye bestie β€” this iconic little page signs off as Protoc...equest(3pm), sourced from perl v5.42.0, dated 2019-03-13. πŸ’œ

πŸ“¦ where this page comes from