public GroupChatConnection(string hostName, string chatMember, TSharedSecret secret, bool sendAddedMetaMessage)
            : base(hostName, secret.VirtualHost, secret.RabbitUser, secret.RabbitPassword)
        {
            GroupChat = new EncryptedGroupChat <TSharedSecret>(secret, chatMember);

            var generator = new JSchemaGenerator();

            MetaMessageSchema    = generator.Generate(typeof(MetaMessage));
            ContentMessageSchema = generator.Generate(typeof(TMessageObject));

            FirstAccess = sendAddedMetaMessage;
        }
 /// <summary>
 /// Initializes the handshake and sends the public server key to the client
 /// </summary>
 /// <param name="chatMember">Name of the server</param>
 public virtual void InitiateHandshake(string chatMember)
 {
     Chat = new EncryptedGroupChat <TSharedSecret>(Secret, chatMember);
     SendServerPublicKeyToClient();
 }