private function processHandshake()

in src/Apache/Ignite/Internal/Connection/ClientSocket.php [206:226]


    private function processHandshake(MessageBuffer $buffer): void
    {
        // Handshake status
        if ($buffer->readByte() === ClientSocket::HANDSHAKE_SUCCESS_STATUS_CODE) {
            return;
        }
        // Server protocol version
        $serverVersion = new ProtocolVersion();
        $serverVersion->read($buffer);
        // Error message
        $errMessage = BinaryCommunicator::readString($buffer);

        if (!$this->isSupportedVersion($serverVersion)) {
            throw new OperationException(
                sprintf('Protocol version mismatch: client %s / server %s. Server details: %s',
                    $this->protocolVersion->toString(), $serverVersion->toString(), $errMessage));
        } else {
            $this->disconnect();
            throw new OperationException($errMessage);
        }
    }