Client negotiation cleanup
This commit is contained in:
parent
affba40d16
commit
1e828bf7d4
@ -5,7 +5,7 @@ use Psr\Http\Message\ResponseInterface;
|
|||||||
use Psr\Http\Message\UriInterface;
|
use Psr\Http\Message\UriInterface;
|
||||||
use GuzzleHttp\Psr7\Request;
|
use GuzzleHttp\Psr7\Request;
|
||||||
|
|
||||||
class ClientNegotiator implements ClientNegotiatorInterface {
|
class ClientNegotiator {
|
||||||
/**
|
/**
|
||||||
* @var ResponseVerifier
|
* @var ResponseVerifier
|
||||||
*/
|
*/
|
||||||
@ -22,7 +22,7 @@ class ClientNegotiator implements ClientNegotiatorInterface {
|
|||||||
$this->defaultHeader = new Request('GET', '', [
|
$this->defaultHeader = new Request('GET', '', [
|
||||||
'Connection' => 'Upgrade'
|
'Connection' => 'Upgrade'
|
||||||
, 'Upgrade' => 'websocket'
|
, 'Upgrade' => 'websocket'
|
||||||
, 'Sec-WebSocket-Version' => 13
|
, 'Sec-WebSocket-Version' => $this->getVersion()
|
||||||
, 'User-Agent' => "RatchetRFC/0.0.0"
|
, 'User-Agent' => "RatchetRFC/0.0.0"
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@ -48,4 +48,7 @@ class ClientNegotiator implements ClientNegotiatorInterface {
|
|||||||
return base64_encode($key);
|
return base64_encode($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
public function getVersion() {
|
||||||
|
return 13;
|
||||||
|
}
|
||||||
|
}
|
@ -1,11 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
namespace Ratchet\RFC6455\Handshake;
|
|
||||||
|
|
||||||
|
|
||||||
interface ClientNegotiatorInterface {
|
|
||||||
const GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -11,15 +11,15 @@ class ResponseVerifier {
|
|||||||
$passes += (int)$this->verifyUpgrade($response->getHeader('Upgrade'));
|
$passes += (int)$this->verifyUpgrade($response->getHeader('Upgrade'));
|
||||||
$passes += (int)$this->verifyConnection($response->getHeader('Connection'));
|
$passes += (int)$this->verifyConnection($response->getHeader('Connection'));
|
||||||
$passes += (int)$this->verifySecWebSocketAccept(
|
$passes += (int)$this->verifySecWebSocketAccept(
|
||||||
$response->getHeader('Sec-WebSocket-Accept'),
|
$response->getHeader('Sec-WebSocket-Accept')
|
||||||
$request->getHeader('sec-websocket-key')
|
, $request->getHeader('Sec-WebSocket-Accept')
|
||||||
);
|
);
|
||||||
|
|
||||||
return (4 == $passes);
|
return (4 === $passes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function verifyStatus($status) {
|
public function verifyStatus($status) {
|
||||||
return ($status == 101);
|
return ((int)$status === 101);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function verifyUpgrade(array $upgrade) {
|
public function verifyUpgrade(array $upgrade) {
|
||||||
@ -34,10 +34,10 @@ class ResponseVerifier {
|
|||||||
return (
|
return (
|
||||||
1 === count($swa) &&
|
1 === count($swa) &&
|
||||||
1 === count($key) &&
|
1 === count($key) &&
|
||||||
$swa[0] == $this->sign($key[0]));
|
$swa[0] === $this->sign($key[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sign($key) {
|
public function sign($key) {
|
||||||
return base64_encode(sha1($key . Negotiator::GUID, true));
|
return base64_encode(sha1($key . NegotiatorInterface::GUID, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user