private static async Task PreTest(TestClient client) { { // Simple test RequestResult result = await client.SendRequest(new Request("test", "this is a test"), TimeSpan.FromSeconds(10)); if (!result.IsSuccessful) { throw result.Exception; } } { // Make sure exceptions are thrown correctly try { RequestResult result = await client.SendRequest(new Request("Exception", null), TimeSpan.FromSeconds(10)); if (!result.IsSuccessful) { throw result.Exception; } } catch (ErrorResponseException ex) { Logger?.Log(LogLevel.Info, "Received expected exception.", ex.ErrorInfo); } } }
static void Main() { Logger.LogExtraInfo = true; Logger.LogLevel = LogLevel.Info; var service = new TestService(); service.Start().Wait(); // Console.ReadLine(); TestClient client = new TestClient(new WebSocketConnectionInfo("ws://localhost:80")); PreTest(client).GetAwaiter().GetResult(); while (true) { string input = Console.ReadLine(); if (input == "exit") { break; } foreach (WebSocketClientProxy proxy in service.Connections.Values) { //var proxy = client; Request request = new Request("test_request", new { TestRequestMessage = input, }); client.SendRequest(request).ContinueWith(task => { if (task.IsFaulted) { Logger?.Log(LogLevel.Error, $"Request '{request.Id}' to failed", task.Exception); } else { RequestResult requestResult = task.Result; if (requestResult.IsSuccessful) { Logger?.Log(LogLevel.Info, $"Request '{request.Id}' succeeded!", requestResult.Response); } else { object extraInfo = requestResult.Exception ?? ((object)requestResult.Response); Logger?.Log(LogLevel.Warning, $"Request '{request.Id}' received an error", extraInfo); } } }); } } client.Close().Wait(); service.Stop().Wait(); }