Passed
Push — develop ( 065f10...1d4e29 )
by Aleksandr
01:25
created

WebSocketServer::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace AlexCool\Rcon\Server\Minecraft;
4
5
use AlexCool\Rcon\Server\AbstractServer;
6
use Swoole\WebSocket\Server;
7
8
/**
9
 * @author Aleksandr Kulina <[email protected]>
10
 *
11
 * @package AlexCool\Rcon\Server\Minecraft
12
 */
13
final class WebSocketServer extends AbstractServer
14
{
15
    /**
16
     * Events
17
     */
18
    const OPEN_EVENT = 'open';
19
    const HANDSHAKE_EVENT = 'handshake';
20
21
    /**
22
     * @param Server $server
23
     */
24
    public function __construct(Server $server)
25
    {
26
        $this->server = $server;
27
    }
28
29
    /**
30
     * @param WebSocketServerBuilder $builder
31
     *
32
     * @return WebSocketServer
33
     */
34
    public static function build(WebSocketServerBuilder $builder)
35
    {
36
        return $builder
37
            ->createWebSocketServer()
38
            ->getServer();
39
    }
40
41
    /**
42
     * @param callable $callback
43
     */
44
    public function onOpen(callable $callback)
45
    {
46
        $this->server->on(self::OPEN_EVENT, $callback);
47
    }
48
49
    /**
50
     * @param callable $callback
51
     */
52
    public function onHandshake(callable $callback)
53
    {
54
        $this->server->on(self::HANDSHAKE_EVENT, $callback);
55
    }
56
}
57