. Net Проблема с соединением клиента Core 3.0 SignalR - PullRequest
1 голос
/ 05 февраля 2020

Я создал 2 проекта. Первый проект. net core mvc приложение работает с SignalR, а второй - клиент. Таким образом, на моем сервере работает, однако, когда я хочу подключиться из console.app к signalR, я получил некоторую ошибку.

Вот коды. (Клиент)

HubConnection conn = new HubConnectionBuilder()
             .WithUrl("http://localhost:5001/userHub")
             .Build();

        conn.StartAsync().ContinueWith(t=>{
            if(t.IsFaulted)
                Console.WriteLine(t.Exception.GetBaseException());
            else
                Console.WriteLine("Connected to Hub");

        }).Wait();  

Сервер:

  public class UserHub : Microsoft.AspNetCore.SignalR.Hub
{
    public override Task OnConnectedAsync()
    {
        System.Console.WriteLine($"New Connection {Context.ConnectionId}");

        Clients.All.SendAsync("ReceiveMessage","New Connection Id", Context.ConnectionId);
        return base.OnConnectedAsync();
    }

    public async Task SendMessage(string user, string message)
    {
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

Сервер (конфигурация)

public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();
        services.AddSignalR();
    }


        app.UseEndpoints(endpoints =>
        {
            endpoints.MapHub<UserHub>("/userHub");
        });

введите описание изображения здесь

1 Ответ

0 голосов
/ 06 февраля 2020

System. Net .Http.HttpRequestException: при отправке запроса произошла ошибка.

---> System.IO.IOException: Ответ закончился преждевременно.

Я могу воспроизвести ту же проблему с URL-адресом http://localhost:5001/userHub, пока он работает в https://localhost:5001 и http://localhost:5000, выполнив команду do tnet run .

Исправить проблема, пожалуйста, измените код на .WithUrl("https://localhost:5001/userHub").

SignalR. NET клиент

Console.WriteLine("Signalr Client Starting...");

HubConnection conn = new HubConnectionBuilder()
    .WithUrl("https://localhost:5001/userHub")
    .Build();

conn.StartAsync().ContinueWith(t => {
    if (t.IsFaulted)
        Console.WriteLine(t.Exception.GetBaseException());
    else
        Console.WriteLine("Connected to Hub");

}).Wait();

Результат теста

enter image description here

...