// Copyright © WireMock.Net
using WireMock.Settings;
using WireMock.WebSockets;
namespace WireMock.ResponseBuilders;
public partial class Response
{
///
/// Internal property to store WebSocket builder configuration
///
internal WebSocketBuilder? WebSocketBuilder { get; set; }
///
/// Configure WebSocket response behavior
///
public IResponseBuilder WithWebSocket(Action configure)
{
var builder = new WebSocketBuilder(this);
configure(builder);
WebSocketBuilder = builder;
return this;
}
///
/// Proxy WebSocket to another server
///
public IResponseBuilder WithWebSocketProxy(string targetUrl)
{
return WithWebSocketProxy(new ProxyAndRecordSettings { Url = targetUrl });
}
///
/// Proxy WebSocket to another server with settings
///
public IResponseBuilder WithWebSocketProxy(ProxyAndRecordSettings settings)
{
var builder = new WebSocketBuilder(this);
builder.WithProxy(settings);
WebSocketBuilder = builder;
return this;
}
}