0
WebSocket.ReceiveAsyncは潜在的に永久にデータを待つようです。無活動タイムアウトを設定する方法はありますか?以下は、コードの外観を概念的に示したものです。WebSocket.ReceiveAsyncのタイムアウトを設定する方法
WebSocket.ReceiveAsyncは潜在的に永久にデータを待つようです。無活動タイムアウトを設定する方法はありますか?以下は、コードの外観を概念的に示したものです。WebSocket.ReceiveAsyncのタイムアウトを設定する方法
cancellation token with timeoutカスタムを使用できます。
public async Task DoListening(AspNetWebSocketContext context)
{
var timeOut = new CancellationTokenSource(500).Token;
WebSocketReceiveResult receiveResult;
try
{
receiveResult = await socket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), timeOut);
DoReceiveAction();
}
catch(OperationCancelledException)
{
DoInactivityAction();
}
}
未知のコード。
ああ、私はCancellationTokenではなく、CancellationTokenSourceを見ていました。ありがとう! –