/// <summary>
        /// Create stream service by accessing the namespace.  If the
        /// connection with the given name does not exist, it is created.
        /// Using the key it creates a token provider to instantiate the
        /// relay service.
        /// </summary>
        /// <param name="name">Name of the listener connection</param>
        /// <param name="connectionString">Relay root connection string</param>
        /// <returns>Stream service instance wrapping name space</returns>
        public static async Task <IStreamService> CreateAsync(string name,
                                                              ConnectionString connectionString)
        {
            var ns  = new ServiceBusNamespace(connectionString);
            var key = await ns.GetConnectionKeyAsync(name).ConfigureAwait(false);

            var relay = new ServiceBusRelay(ns.GetConnectionUri(name),
                                            TokenProvider.CreateSharedAccessSignatureTokenProvider("proxy", key));

            await relay.OpenAsync().ConfigureAwait(false);

            return(relay);
        }