---
name: "Protocol::WebSocket::Request"
section: "3pm"
platform: "linux"
package: "libprotocol-websocket-perl"
version: "0.26-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Protocol::WebSocket::Request"
---

# Protocol::WebSocket::Request(3pm)

WebSocket Request

## NAME

Protocol::WebSocket::Request - WebSocket Request

## SYNOPSIS

```
    # 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#####
    # 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.

## ATTRIBUTES

### "host"

### "key1"

### "key2"

### "number1"

### "number2"

### "origin"

### "resource\_name"

## METHODS

### "new"

Create a new Protocol::WebSocket::Request instance.

### "new\_from\_psgi"

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

Create a new Protocol::WebSocket::Request instance from PSGI environment.

### "parse"

```
    $req->parse($buffer);
    $req->parse($handle);
```

Parse a WebSocket request. Incoming buffer is modified.

### "to\_string"

Construct a WebSocket request.

### "connection"

```
    $self->connection;
```

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

### "cookies"

### "upgrade"

```
    $self->upgrade;
```

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