private async Task WebSocketRequest(AspNetWebSocketContext context) { var socket = context.WebSocket; while (true) { var buffer = new ArraySegment <byte>(new byte[1024]); // Listen to client var result = await socket.ReceiveAsync(buffer, CancellationToken.None); //If input frame is cancelation frame, send close command. if (result.MessageType == WebSocketMessageType.Close) { await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None); } else { var receivedString = Encoding.UTF8.GetString(buffer.ToArray()); var builder = new FormulaBuilder(receivedString); var sendingString = builder.Build(); var bytes = Encoding.UTF8.GetBytes(sendingString); await socket.SendAsync(new ArraySegment <byte>(bytes), WebSocketMessageType.Text, true, CancellationToken.None); } } }
public void TestOperationValidation() { // Arrange var input = @"<request><expression><operation>plus</operation><operand><const>20</const></operand><operand> <expression><operation>bla</operation><operand><const>10</const></operand><operand><const>5</const></operand> </expression></operand></expression></request>"; // Act var builder = new FormulaBuilder(input); var result = builder.Build(); // Assert Approvals.Verify(result); }
private static void tcpServer_ClientConnected(TcpClient client) { Console.WriteLine("Client connected: {0}", client.RemoteEndPoint); client.Received += (c, r) => Console.WriteLine("← Request received: {0} from client {1}", r, client.RemoteEndPoint); client.Sent += (c, r) => Console.WriteLine("→ Response sent: {0} to client {1}", r, client.RemoteEndPoint); while (client.IsConnected) { var receivedString = client.ReceiveString(Encoding.UTF8); if (receivedString.Equals("DisconnectEvent") || string.IsNullOrEmpty(receivedString)) { client.Disconnect(); break; } var builder = new FormulaBuilder(receivedString); var sendingString = builder.Build(); client.SendString(sendingString, Encoding.UTF8); } }