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 值,而是让服务器主动调用以在操作完成后向客户端提供值。
我开始玩 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 值,而是让服务器主动调用以在操作完成后向客户端提供值。