internal class CloseOutgoingMessage()

in src/Azure.AppService.Tunnel/Tunnel/WebSockets/Outgoing/CloseOutgoingMessage.cs [7:20]


internal class CloseOutgoingMessage(WebSocket webSocket, WebSocketCloseStatus closeStatus, string statusDescription) : IOutgoingMessage
{
    public bool SilentFailure => true;

    public async Task Execute()
    {
        if (webSocket.StateIs(WebSocketState.Closed, WebSocketState.CloseSent, WebSocketState.Aborted))
        {
            return;
        }

        await webSocket.CloseOutputAsync(closeStatus, statusDescription, CancellationToken.None);
    }
}