/** * @param InputInterface $input * @param OutputInterface $output * @return int */ protected function execute(InputInterface $input, OutputInterface $output) { $port = 8900; $server = new Server(); $server->get('/', function (Request $request, Response $response, $next) { $response->writeJson(['ok' => true, 'self' => ['id' => 'U01234567', 'name' => 'testbot'], 'url' => 'wss://localhost:8901/']); $response->end(); }); $runner = new Runner($server); $runner->listen($port); }
public function run(callable $callback, $time) { $promise = new Promise(); $loop = Runner::getLoop(); $loop->addTimer($time, function () use($promise, $callback) { if ($promise->getState() === PromiseInterface::PENDING) { try { $promise->resolve($callback()); } catch (\Exception $e) { $promise->reject($e); } } }); return $promise; }
<?php require_once __DIR__ . '/../vendor/autoload.php'; use CapMousse\ReactRestify\Server; use CapMousse\ReactRestify\Runner; $server = new Server("ReactAPI", "0.0.0.1"); $server->any('/products', 'App\\Controllers\\ProductController')->where('id', '[0-9]?'); $server->on('NotFound', function ($request, $response, $next) { $response->write('You fail, 404'); $response->setStatus(404); $next(); }); $runner = new Runner($server); $runner->listen(1337);
/** * @param \CapMousse\ReactRestify\Server $server \CapMousse\ReactRestify\Server server instance to run */ protected function runServer($server) { $port = Registry::get('container')['config']->getEntry('server.port'); if (null === $port) { throw new \RuntimeException('server.port value should be set in config'); } $runner = new Runner($server); $runner->listen($port); }