我有这段代码来测试SignalR中的异步编程。此代码在10秒后将文本发送回客户端。每个用户的SignalR队列限制
public class TestHub : Hub
{
public async Task BroadcastMessage(string text)
{
await DelayResponse(text);
}
async Task DelayResponse(string text)
{
await Task.Delay(10000);
Clients.All.displayText(text);
}
}
此代码工作正常,但有一个意外的行为。当发送5条消息的时间少于10秒时,直到先前的“DelayResponse”方法结束,客户端才能发送更多消息。它发生在每个连接上,如果在10秒钟之前关闭连接并重新打开它,客户端可以再次发送5条消息。我用Chrome,Firefox和IE测试它。 我犯了一些错误或者是信号的限制?
这是完全正确的。我在不支持websocket的Windows 7上工作,因此我的电脑上的信号传输类型是“ServerSentEvents”,因此达到了浏览器连接限制。当我在支持websockets的windows 10上测试我的代码时,没有任何限制。我连续发送约500条消息,然后在10秒后得到500条回应。 –