Client negotiation cleanup

This commit is contained in:
Chris Boden 2016-02-08 07:50:17 -05:00
parent affba40d16
commit 1e828bf7d4
3 changed files with 13 additions and 21 deletions

View File

@ -5,7 +5,7 @@ use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\UriInterface;
use GuzzleHttp\Psr7\Request;
class ClientNegotiator implements ClientNegotiatorInterface {
class ClientNegotiator {
/**
* @var ResponseVerifier
*/
@ -22,7 +22,7 @@ class ClientNegotiator implements ClientNegotiatorInterface {
$this->defaultHeader = new Request('GET', '', [
'Connection' => 'Upgrade'
, 'Upgrade' => 'websocket'
, 'Sec-WebSocket-Version' => 13
, 'Sec-WebSocket-Version' => $this->getVersion()
, 'User-Agent' => "RatchetRFC/0.0.0"
]);
}
@ -48,4 +48,7 @@ class ClientNegotiator implements ClientNegotiatorInterface {
return base64_encode($key);
}
}
public function getVersion() {
return 13;
}
}

View File

@ -1,11 +0,0 @@
<?php
namespace Ratchet\RFC6455\Handshake;
interface ClientNegotiatorInterface {
const GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
}

View File

@ -11,15 +11,15 @@ class ResponseVerifier {
$passes += (int)$this->verifyUpgrade($response->getHeader('Upgrade'));
$passes += (int)$this->verifyConnection($response->getHeader('Connection'));
$passes += (int)$this->verifySecWebSocketAccept(
$response->getHeader('Sec-WebSocket-Accept'),
$request->getHeader('sec-websocket-key')
);
$response->getHeader('Sec-WebSocket-Accept')
, $request->getHeader('Sec-WebSocket-Accept')
);
return (4 == $passes);
return (4 === $passes);
}
public function verifyStatus($status) {
return ($status == 101);
return ((int)$status === 101);
}
public function verifyUpgrade(array $upgrade) {
@ -34,10 +34,10 @@ class ResponseVerifier {
return (
1 === count($swa) &&
1 === count($key) &&
$swa[0] == $this->sign($key[0]));
$swa[0] === $this->sign($key[0]));
}
public function sign($key) {
return base64_encode(sha1($key . Negotiator::GUID, true));
return base64_encode(sha1($key . NegotiatorInterface::GUID, true));
}
}