protected function pack($data, int $seconds = 0): string
    {
        return serialize(
            array(
                'data' => $this->toPack($data),
                'timeout' => $seconds ? $this->microtime($seconds * 1000) : 0,
            )
        );
    }