Icicle\Http\Driver\Http1Driver::writeResponse PHP Метод

writeResponse() публичный Метод

public writeResponse ( Icicle\Socket\Socket $socket, Response $response, Request $request = null, float $timeout ) : Generator
$socket Icicle\Socket\Socket
$response Response
$request Request
$timeout float
Результат Generator
    public function writeResponse(Socket $socket, Response $response, Request $request = null, float $timeout = 0) : \Generator
    {
        $written = (yield from $socket->write($this->encoder->encodeResponse($response)));
        $stream = $response->getBody();
        if ((!isset($request) || $request->getMethod() !== 'HEAD') && $stream->isReadable()) {
            $written += (yield from Stream\pipe($stream, $socket, false, 0, null, $timeout));
        }
        return $written;
    }

Usage Example

Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function writeResponse(Socket $socket, Response $response, Request $request = null, float $timeout = 0) : \Generator
 {
     $written = (yield from parent::writeResponse($socket, $response, $request, $timeout));
     if ($response instanceof WebSocketResponse) {
         $application = $response->getApplication();
         $connection = $response->getConnection();
         $response = $response->getMessage();
         yield from $this->onConnection($application, $connection, $response, $request);
     }
     return $written;
 }