Пример #1
0
 /**
  * Performs the WebSocket HTTP hand-shake.
  *
  * @param HttpRequest $httpRequest
  * @return HttpResponse The HTTP response to send back to the browser.
  */
 private function performHandshake(HttpRequest $httpRequest)
 {
     $req = new WebSocketRequest($httpRequest);
     if ($req->validate()) {
         $e = $this->createEvent(WebSocketServer::EVENT_HANDSHAKE);
         $e->request = $req;
         $this->notifyEventListeners($e);
         if (!$req->isRejected()) {
             $req->handshake();
         }
     }
     $success = !$req->isRejected() && substr($req->getHttpResponse()->getStatus(), 0, 3) === "101";
     fwrite($httpRequest->getStream(), $req->getHttpResponse());
     return $success;
 }