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
|
|
|
}
|