public void setProtocol(String protocol) {
        this.protocol = protocol;
    }
Sets the name of the protocol to be used. If no connection is being
joined (a new connection is being established), this value must be set.

<p>If a connection is being joined, <strong>this value should still be
set</strong> to ensure that protocol-specific responses like the
"required" and "argv" instructions can be understood in their proper
context by other code that may consume this GuacamoleConfiguration like
{@link ConfiguredGuacamoleSocket}.

<p>If this value is unavailable or remains unset, it is still possible
to join an established connection using
{@link #setConnectionID(java.lang.String)}, however protocol-specific
responses like the "required" and "argv" instructions might not be
possible to handle correctly if the underlying protocol is not made
available through some other means to the client receiving those
responses.

@param protocol
   The name of the protocol to be used.
guacamole-common/src/main/java/org/apache/guacamole/protocol/GuacamoleConfiguration.java