Fibinger Ádám
2020-09-10 f2e0b5357a6f019780773cb87cc5c633b27c88f2
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
26
27
28
29
<?php
require './vendor/autoload.php';
 
$loop = React\EventLoop\Factory::create();
$pusher = new WS\Pusher;
$client = new Predis\Async\Client('tcp://127.0.0.1:6379', $loop);
 
$client->connect(function ($client) use ($pusher) {
    /** @var Predis\Async\Client $client */
    $client->pubSubLoop('overlay', function ($event, $pubsub) use ($pusher) {
        $pusher->broadcast($event->payload);
        var_dump($event->payload);
    });
});
 
if (!$client->isConnected())
{
    die("Fatal error: TCP connection to redis-server is closed\n");
}
 
$webSock = new React\Socket\Server('127.0.0.1:8000', $loop);
$webServer = new Ratchet\Server\IoServer(
    new \Ratchet\Http\HttpServer(
        new \Ratchet\WebSocket\WsServer(
            $pusher
        )
    ), $webSock);
 
$loop->run();