SignalR:异步服务器方法调用的数量限制为 5

SignalR: amount of async server-methods calls limited to 5

我开始玩 SignalR 并面对这种行为 - 用异步标记集线器中的 public 方法将同时客户端调用的数量限制为 5。一旦任何 运行ning 操作完成,来自某个队列(或缓冲区)的下一次调用将到达集线器中的方法(至少停止在断点处)

public async Task<string> RunNewOperation()
{
    var operation = await _operationContainer.RunNewOperation("Custom task", TaskDummy.DummyAction);

    return "task result";
}

从集线器方法中删除 async 可以 运行 任意数量的任务

public string RunNewOperation()
{
    var operation = _operationContainer.RunNewOperation("Custom task", TaskDummy.DummyAction);

    return "task result";
}

所以问题是 - 这是正确的行为吗?如果是,如何避免此类麻烦并允许用户进行任意数量的异步方法调用?

这是代码示例https://github.com/jsdmc/Asp.Net-MVC-SignalR-tasks-container-sample

您正在点击浏览器强制执行的 connection limit per hostname

您最好的选择是不要等待 return 值,而是让服务器主动调用以在操作完成后向客户端提供值。