class Transport_websocket {
protected $magicGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
- function Transport_websocket() {
+ function Transport_websocket($secure = FALSE) {
$this->headerOriginRequired = false;
$this->headerSecWebSocketProtocolRequired = false;
$this->headerSecWebSocketExtensionsRequired = false;
}
if (!isset($headers['Host']) || !$this->checkHost($headers['Host'])) {
+ // error_log('bad 1');
$headers_out['HTTP-Response'] = "400 Bad Request";
}
if (!isset($headers['Upgrade']) || strtolower($headers['Upgrade']) != 'websocket') {
+ // error_log('bad 2 ' . $headers['Upgrade']);
$headers_out['HTTP-Response'] = "400 Bad Request";
}
if (!isset($headers['Connection']) || strpos(strtolower($headers['Connection']), 'upgrade') === FALSE) {
+ // error_log('bad 3');
$headers_out['HTTP-Response'] = "400 Bad Request";
}
if (!isset($headers['Sec-Websocket-Key'])) {
+ // error_log('bad 4');
$headers_out['HTTP-Response'] = "400 Bad Request";
} else {
}
if ( ($this->headerSecWebSocketProtocolRequired && !isset($headers['Sec-Websocket-Protocol']))
|| ($this->headerSecWebSocketProtocolRequired &&
!$this->checkWebsocProtocol($headers['Sec-Websocket-Protocol']))) {
+ // error_log('bad 5');
$headers_out['HTTP-Response'] = "400 Bad Request";
}
if ( ($this->headerSecWebSocketExtensionsRequired && !isset($headers['Sec-Websocket-Extensions']))
|| ($this->headerSecWebSocketExtensionsRequired &&
!$this->checkWebsocExtensions($headers['Sec-Websocket-Extensions'])) ) {
+ // error_log('bad 6');
$headers_out['HTTP-Response'] = "400 Bad Request";
}
static function create($transp)
{
- if ($transp == 'websocket') {
- return new Transport_websocket();
+ if ($transp == 'websocket' || $transp == 'websocketsec') {
+ return new Transport_websocket($transp == 'websocketsec');
}
else if ($transp == 'xhr') {
return new Transport_xhr();
}
}
}
-?>
\ No newline at end of file
+?>