Ejemplo n.º 1
0
 /**
  * Send handshake HTTP/1.1 response to the client to enable protocol switching.
  * 
  * @param BufferedDuplexStreamInterface $socket
  * @param HttpRequest $request
  */
 protected function sendHandshake(BufferedDuplexStreamInterface $socket, HttpRequest $request) : \Generator
 {
     $accept = base64_encode(sha1($request->getHeaderLine('Sec-WebSocket-Key') . self::GUID, true));
     $message = sprintf("HTTP/%s 101 Switching Protocols\r\n", $request->getProtocolVersion());
     $message .= "Connection: Upgrade\r\n";
     $message .= "Upgrade: websocket\r\n";
     $message .= sprintf("Sec-WebSocket-Accept: %s\r\n", $accept);
     $message .= "Sec-WebSocket-Version: 13\r\n";
     $message .= "\r\n";
     yield from $socket->write($message);
 }