// Copyright © WireMock.Net using System; using JetBrains.Annotations; using WireMock.Matchers; using WireMock.Settings; using WireMock.Types; namespace WireMock.WebSockets; /// /// WebSocket Response Builder interface /// public interface IWebSocketBuilder { /// /// Accept the WebSocket with a specific protocol /// [PublicAPI] IWebSocketBuilder WithAcceptProtocol(string protocol); /// /// Echo all received messages back to client /// [PublicAPI] IWebSocketBuilder WithEcho(); /// /// Configure and send a single message in response to any received message /// /// Action to configure the message [PublicAPI] IWebSocketBuilder SendMessage(Action configure); /// /// Configure and send multiple messages in response to any received message /// /// Action to configure the messages [PublicAPI] IWebSocketBuilder SendMessages(Action configure); /// /// Configure message sending based on message content matching /// /// String to match in message text [PublicAPI] IWebSocketMessageConditionBuilder WhenMessage(string wildcardPattern); /// /// Configure message sending based on message content matching /// /// Bytes to match in message [PublicAPI] IWebSocketMessageConditionBuilder WhenMessage(byte[] exactPattern); /// /// Configure message sending based on IMatcher /// /// IMatcher to match the message [PublicAPI] IWebSocketMessageConditionBuilder WhenMessage(IMatcher matcher); /// /// Handle incoming WebSocket messages /// [PublicAPI] IWebSocketBuilder WithMessageHandler(Func handler); /// /// Enable broadcast mode for this mapping /// [PublicAPI] IWebSocketBuilder WithBroadcast(); /// /// Proxy to another WebSocket server /// [PublicAPI] IWebSocketBuilder WithProxy(ProxyAndRecordSettings settings); /// /// Set close timeout (default: 10 minutes) /// [PublicAPI] IWebSocketBuilder WithCloseTimeout(TimeSpan timeout); /// /// Set maximum message size in bytes (default: 1 MB) /// [PublicAPI] IWebSocketBuilder WithMaxMessageSize(int sizeInBytes); /// /// Set receive buffer size (default: 4096 bytes) /// [PublicAPI] IWebSocketBuilder WithReceiveBufferSize(int sizeInBytes); /// /// Set keep-alive interval (default: 30 seconds) /// [PublicAPI] IWebSocketBuilder WithKeepAliveInterval(TimeSpan interval); }