laravel-websockets/src/LaravelEcho/Http/Controllers/EchoController.php

47 lines
1.3 KiB
PHP
Raw Normal View History

2018-11-20 13:50:37 +00:00
<?php
2018-11-21 11:13:40 +00:00
namespace BeyondCode\LaravelWebSockets\LaravelEcho\Http\Controllers;
2018-11-20 13:50:37 +00:00
2018-11-21 11:13:40 +00:00
use Illuminate\Http\Request;
2018-11-20 13:50:37 +00:00
use Ratchet\ConnectionInterface;
use Illuminate\Http\JsonResponse;
2018-11-21 11:13:40 +00:00
use GuzzleHttp\Psr7\ServerRequest;
2018-11-20 13:50:37 +00:00
use Ratchet\Http\HttpServerInterface;
use Psr\Http\Message\RequestInterface;
2018-11-21 11:13:40 +00:00
use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory;
2018-11-20 13:50:37 +00:00
abstract class EchoController implements HttpServerInterface
{
public function onOpen(ConnectionInterface $conn, RequestInterface $request = null)
{
2018-11-21 11:13:40 +00:00
$queryParameters = [];
parse_str($request->getUri()->getQuery(), $queryParameters);
$serverRequest = (new ServerRequest(
$request->getMethod(),
$request->getUri(),
$request->getHeaders(),
$request->getBody(),
$request->getProtocolVersion()
))->withQueryParams($queryParameters);
$response = $this(Request::createFromBase((new HttpFoundationFactory)->createRequest($serverRequest)));
2018-11-20 13:50:37 +00:00
$conn->send(JsonResponse::create($response)->send());
$conn->close();
}
function onMessage(ConnectionInterface $from, $msg)
{
2018-11-21 23:10:47 +00:00
}
function onClose(ConnectionInterface $conn)
{
}
function onError(ConnectionInterface $conn, \Exception $e)
{
2018-11-20 13:50:37 +00:00
}
2018-11-21 11:13:40 +00:00
abstract public function __invoke(Request $request);
2018-11-20 13:50:37 +00:00
}