protected override void InitializeWebServer(IEtpSelfHostedWebServer webServer) { var webServerHandler = new StoreHandler(TestDataStore); InitializeRegistrar(webServer.ServerManager, webServerHandler); Handlers.Add(webServerHandler); }
/// <summary> /// Initializes common resources. /// </summary> /// <param name="container">The composition container.</param> protected void EtpSetUp(IContainer container) { _container = container; // Clean up any remaining resources _client?.Dispose(); _server?.Dispose(); // Get next available port number var listener = new TcpListener(IPAddress.Loopback, 0); listener.Start(); var port = ((IPEndPoint)listener.LocalEndpoint).Port; listener.Stop(); // Update EtpServerUrl setting var uri = new Uri(TestSettings.EtpServerUrl); var url = TestSettings.EtpServerUrl.Replace($":{uri.Port}", $":{port}"); // Create server and client instances _server = CreateServer(port); _client = InitClient(CreateClient(url)); // Resolve dependencies early to avoid object disposed var streaming = container.Resolve <IChannelStreamingProducer>(); var discovery = container.Resolve <IDiscoveryStore>(); var store = container.Resolve <IStoreStore>(); // Register server handlers _server.Register(() => streaming); _server.Register(() => discovery); _server.Register(() => store); }
protected override void InitializeWebServer(IEtpSelfHostedWebServer webServer) { var webServerHandler = new CustomerHandler(); InitializeRegistrar(webServer.ServerManager, webServerHandler); Handlers.Add(webServerHandler); }
/// <summary> /// Disposes common resources. /// </summary> protected void EtpCleanUp() { _client?.Dispose(); _server?.Dispose(); _client = null; _server = null; TestSettings.Reset(); }
/// <summary> /// Initializes common resources. /// </summary> /// <param name="webSocketType">The WebSocket type.</param> /// <param name="etpSubProtocol">The ETP websocket sub-protocol</param> protected void SetUp(WebSocketType webSocketType, string etpSubProtocol) { // Clean up any remaining resources _client?.Dispose(); _server?.Dispose(); // Create server and client instances _server = CreateServer(webSocketType); _client = CreateClient(webSocketType, etpSubProtocol, _server.Uri.ToWebSocketUri().ToString()); }
/// <summary> /// Initializes common resources. /// </summary> /// <param name="webSocketType">The WebSocket type.</param> /// <param name="etpSubProtocol">The ETP websocket sub-protocol</param> protected void SetUpWithProxy(WebSocketType webSocketType, string etpSubProtocol) { // Clean up any remaining resources _client?.Dispose(); _server?.Dispose(); var proxiedServer = CreateServer(webSocketType); _server = new EtpSelfHostedProxyWebServer(GetAvailablePort(), proxiedServer); // Use hostname so .NET will connect through the proxy. var uri = new UriBuilder(proxiedServer.Uri.Scheme, "vcap.me", proxiedServer.Uri.Port, proxiedServer.Uri.AbsolutePath, proxiedServer.Uri.Query).Uri; _client = CreateClient(webSocketType, etpSubProtocol, uri.ToWebSocketUri().ToString()); }
public EtpSelfHostedProxyWebServer(int port, IEtpSelfHostedWebServer proxiedServer) { _proxiedServer = proxiedServer; _proxyServer = new ProxyServer(); var uri = proxiedServer.Uri; var builder = new UriBuilder(uri.Scheme, uri.Host, port, uri.AbsolutePath, uri.Query); ProxyUri = builder.Uri; var endPoint = new ExplicitProxyEndPoint(IPAddress.Loopback, ProxyUri.Port, false); endPoint.GenericCertificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(); _proxyServer.ProxyBasicAuthenticateFunc = HandleBasicAuthentication; _proxyServer.AddEndPoint(endPoint); }
protected abstract void InitializeWebServer(IEtpSelfHostedWebServer webServer);
private void HandleWebServer(IEtpSelfHostedWebServer webServer) { while (true) { Console.WriteLine("Select from the following options:"); Console.WriteLine(" S - Start / Stop"); if (webServer.ServerManager.IsEtpVersionSupported(EtpVersion.v12)) { Console.WriteLine(" P - Ping all connected clients"); } foreach (var handler in Handlers) { handler.PrintConsoleOptions(); } Console.WriteLine(" Z - Clear"); Console.WriteLine(" X - Exit"); Console.WriteLine(); var info = Console.ReadKey(); Console.WriteLine(" - processing..."); Console.WriteLine(); if (IsKey(info, "S")) { if (webServer.IsRunning) { webServer.Stop(); } else { webServer.Start(); } } else if (IsKey(info, "P")) { foreach (var server in webServer.ServerManager.Servers.Values) { if (server.EtpVersion == EtpVersion.v12) { server.Ping(); } } } else if (IsKey(info, "Z")) { Console.Clear(); } else if (IsKey(info, "X")) { break; } else { foreach (var handler in Handlers) { if (handler.HandleConsoleInput(info)) { break; } } } } }