latest updates
[namibia] / daemon / SocketServer.php
1 <?php
2
3 #-> Root ourselves.
4 chdir(dirname(__DIR__));
5 date_default_timezone_set ( 'Africa/Johannesburg' );
6
7 #-> Prepare workspace.
8 ini_set('memory_limit','512M');
9 require_once 'init_autoloader.php';
10 require_once 'SocketApp.php';
11
12
13 #-> Get the socket server running.
14 #-> Server loop and our router.
15 $server = React\EventLoop\Factory::create();
16 $router = new Daemon\Damien();
17
18 #-> ZeroMQ binding.
19 $context = new React\ZMQ\Context($server);
20 $pull    = $context->getSocket(ZMQ::SOCKET_PULL);
21 $pull->bind('tcp://127.0.0.1:90');
22 $pull->on('message', array($router, 'onQueueMessage'));
23
24 #-> Websocket binding.
25 $webSock = new \React\Socket\Server($server);
26 $webSock->listen(91, '0.0.0.0');
27 $webServer = new Ratchet\Server\IoServer(
28         new Ratchet\Http\HttpServer(
29                 new Ratchet\WebSocket\WsServer(
30                         $router
31                 )
32         ),
33         $webSock
34 );
35
36 #-> Awesomeness.
37 $server->run();