【问题标题】:.NET Console SignalR Client vs .NET Core SignalR Server.NET 控制台 SignalR 客户端与 .NET Core SignalR 服务器
【发布时间】:2017-11-30 23:38:01
【问题描述】:

我需要在 .NET 控制台和 ASP.NET Core 2.0 应用程序之间交换数据。第二个已经托管了一个 SignalR 服务器:

public class MyHub : Hub
{
    public override async Task OnConnectedAsync()
    {
        await Clients.All.InvokeAsync("Send", $"{Context.ConnectionId} connected");
    }

    public Task Send(string message)
    {
        return Clients.All.InvokeAsync("Send", $"{Context.ConnectionId}: {message}");
    }
}

app.UseSignalR(routes =>
{
     routes.MapHub<MyHub>("hubs");
});

我可以从 html 页面调用这些函数。因此它正在工作。 现在我在解决方案中添加了一个 .NET 4.6 控制台应用程序:

public static HubConnection _connection;

static void Main(string[] args)
{
    _connection = new HubConnection("http://localhost:51278/hubs");
    var myHub = _connection.CreateHubProxy("MyHub");

    _connection.Closed += OnDisconnected;
    OnDisconnected();

    myHub.Invoke<string>("Send", "Hello World ").ContinueWith(task => {
        if (task.IsFaulted)
        {
            Console.WriteLine("There was an error calling send: {0}", task.Exception.GetBaseException());
        }
        else
        {
            Console.WriteLine(task.Result);
        }
    });

    _connection.Stop();
}

static void OnDisconnected()
{
    Console.WriteLine("Disconnected. Try to connect...");
    var t = _connection.Start(new LongPollingTransport());

    bool result = false;
    t.ContinueWith(task => 
    {
        if (!task.IsFaulted)
        {
            result = true;
            Console.WriteLine("Connected");
        }
    }).Wait();

    if (!result)
    {
        OnDisconnected();
    }
}

但是输出是:

已断开连接。尝试连接...

已断开连接。尝试连接...

没有别的。我是 SignalR 的新手,我不知道如何进一步调试这种行为。

【问题讨论】:

    标签: c# asp.net-core signalr


    【解决方案1】:

    用于 .Net Core 的 SignalR 与用于完整 .Net 框架的先前版本的 SignalR 不兼容。

    在完整框架中编写的 SignalR 客户端不能与 Asp.Net 核心中的集线器一起使用(反之亦然)。

    这是来自 GitHub 的确认

    Will a SignalR Core server connect OK with 'traditional' Signalr 2 clients?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      相关资源
      最近更新 更多