Hprose\Swoole\Socket\FullDuplexTransporter::init PHP Method

init() private method

private init ( $conn )
    private function init($conn)
    {
        $self = $this;
        $conn->count = 0;
        $conn->futures = array();
        $conn->timeoutIds = array();
        $conn->onreceive = function ($conn, $data, $id) use($self) {
            if (isset($conn->futures[$id])) {
                $future = $conn->futures[$id];
                $self->clean($conn, $id);
                if ($conn->count === 0) {
                    $self->recycle($conn);
                }
                $future->resolve($data);
            }
        };
        $conn->on('close', function ($conn) use($self) {
            $futures = $conn->futures;
            if ($conn->errCode !== 0) {
                $error = new Exception(socket_strerror($conn->errCode));
            } else {
                $error = new Exception('The server is closed.');
            }
            foreach ($futures as $id => $future) {
                $self->clean($conn, $id);
                $future->reject($error);
            }
            $self->size--;
        });
    }