私はこのコードを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);
}
}
このコードはうまく動作しますが、予期しない動作があります。 10秒未満で5つのメッセージが送信された場合、クライアントは以前の「DelayResponse」メソッドが終了するまで、さらにメッセージを送信できません。接続ごとに発生し、10秒前に接続を終了して再度開くと、クライアントは5つのメッセージを再度送信できます。私はchrome、firefox、IEでテストします。 私は間違いを犯しましたか、それとも信号機の制限ですか?
これはまさに正しいことです。私はWindows 7でwebsocketをサポートしていないので、私のPC上のシグナルトランスポートタイプは "ServerSentEvents"なので、ブラウザの接続制限に達しました。 WebSocketをサポートしているWindows 10でコードをテストするときに制限はありませんでした。私は約500のメッセージを続けて送信し、その後10秒後に500の応答を得ました。 –