public verifyRequest ( Kraken\Network\Http\HttpRequestInterface $request ) : boolean | ||
$request | Kraken\Network\Http\HttpRequestInterface | |
Résultat | boolean |
public function verifyRequest(HttpRequestInterface $request)
{
$passes = 0;
$passes += (int) $this->verifyMethod($request->getMethod());
$passes += (int) $this->verifyHTTPVersion($request->getProtocolVersion());
$passes += (int) $this->verifyRequestURI($request->getUri()->getPath());
$passes += (int) $this->verifyHost($request->getHeaderLine('Host'));
$passes += (int) $this->verifyUpgradeRequest($request->getHeaderLine('Upgrade'));
$passes += (int) $this->verifyConnection($request->getHeaderLine('Connection'));
$passes += (int) $this->verifyKey($request->getHeaderLine('Sec-WebSocket-Key'));
return 7 === $passes;
}
/** * @param HttpRequestInterface $request * @return HttpResponseInterface */ public function wsHandshake(HttpRequestInterface $request) { if ($this->verifier->verifyRequest($request) !== true) { return new HttpResponse(400); } return new HttpResponse(101, ['Upgrade' => 'websocket', 'Connection' => 'Upgrade', 'Sec-WebSocket-Accept' => $this->sign($request->getHeaderLine('Sec-WebSocket-Key'))]); }