summaryrefslogtreecommitdiffstats
path: root/vendor/textalk/websocket/lib/Message/Factory.php
blob: 31df89cf0fb1e5dba239765994a5593dd929a0a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

namespace WebSocket\Message;

use WebSocket\BadOpcodeException;

class Factory
{
    public function create(string $opcode, string $payload = ''): Message
    {
        switch ($opcode) {
            case 'text':
                return new Text($payload);
            case 'binary':
                return new Binary($payload);
            case 'ping':
                return new Ping($payload);
            case 'pong':
                return new Pong($payload);
            case 'close':
                return new Close($payload);
        }
        throw new BadOpcodeException("Invalid opcode '{$opcode}' provided");
    }
}