Azure Строка подключения службы SignalR - PullRequest
1 голос
/ 19 апреля 2020

Попытка создать PO C для службы azure сигнализатора. Я нашел образцы github, которые, как оказалось, имели несколько solid примеров. Я выбрал этот один . По сути, моя проблема в том, что когда я запускаю код локально, он работает как чемпион с URL-адресом локального хоста, но когда я пытаюсь запустить его с использованием Azure службы SignalR, используя URL-адрес, скопированный из ключей портала azure, который находится в этот формат: Endpoint=<service_endpoint>;AccessKey=<access_key>;, я получаю сообщение об ошибке «Неверный URI: недопустимая схема URI». Как преобразовать URL-адрес из того, что я копирую с ключей, и использовать его для подключения к службе передачи сигналов?

class Program
{
    private const string DefaultHubEndpoint = "Endpoint=http://someFakesrsname.service.signlar.net;AccsssKey=thisseemslikeagoodaccesskeytouseformyquestion";//"http://localhost:5000/ManagementSampleHub";
    private const string Target = "Target";
    private const string DefaultUser = "User";

    static void Main(string[] args)
    {
        var app = new CommandLineApplication();
        app.FullName = "Azure SignalR Management Sample: SignalR Client Tool";
        app.HelpOption("--help");

        var hubEndpointOption = app.Option("-h|--hubEndpoint", $"Set hub endpoint. Default value: {DefaultHubEndpoint}", CommandOptionType.SingleValue, true);
        var userIdOption = app.Option("-u|--userIdList", "Set user ID list", CommandOptionType.MultipleValue, true);

        app.OnExecute(async () =>
        {
            var hubEndpoint = hubEndpointOption.Value() ?? DefaultHubEndpoint;
            var userIds = userIdOption.Values != null && userIdOption.Values.Count > 0 ? userIdOption.Values : new List<string>() { "User" };

            Console.WriteLine("hubEndpoint: " + hubEndpoint);
            Console.WriteLine("DefaultHubEndpoint: " + DefaultHubEndpoint);
            foreach (var userId in userIds)
            {
                Console.WriteLine("UserId: " + userId);
            }

            var connections = (from userId in userIds
                               select CreateHubConnection(hubEndpoint, userId)).ToList();

            await Task.WhenAll(from conn in connections
                               select conn.StartAsync());

            Console.WriteLine($"{connections.Count} Client(s) started...");
            Console.ReadLine();

            await Task.WhenAll(from conn in connections
                               select conn.StopAsync());
            return 0;
        });

        app.Execute(args);
    }

    static HubConnection CreateHubConnection(string hubEndpoint, string userId)
    {
        var url = hubEndpoint.TrimEnd('/') + $"?user={userId}";
        var connection = new HubConnectionBuilder().WithUrl(url).Build();
        connection.On(Target, (string message) =>
        {
            Console.WriteLine($"{userId}: gets message from service: '{message}'");
        });

        connection.Closed += async ex =>
        {
            Console.WriteLine(ex);
            Environment.Exit(1);
        };

        return connection;
    }
}
enter code here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...