我有這段代碼來測試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條迴應。 –