public static async Task Echo(HttpContext context, WebSocket webSocket) { var buffer = new byte[1024 * 4]; WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); while (!result.CloseStatus.HasValue) { WebSocketServico = new _WebSocketServico(Context.Instancia("Data Source=127.0.0.1;Initial Catalog=cronos.db;User ID=root;Password="******"SEND")) { SocketData <Mensagem> resposta = TratarOutput <Mensagem>(socketData); mystring = TratamentoMensagem.SerializarObjeto(resposta); } else if (socketData.Operacao.Contains("REQUEST")) { SocketData <MensagemListResponse> resposta = TratarOutput <MensagemListResponse>(socketData.Copy <MensagemListResponse, Mensagem>()); mystring = TratamentoMensagem.SerializarObjeto(resposta); } ArraySegment <byte> arrayResponse = TratamentoMensagem.StringToArray(mystring); await webSocket.SendAsync(arrayResponse, result.MessageType, result.EndOfMessage, CancellationToken.None); result = await webSocket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); } await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None); }
private static SocketData <TData> TratarInput <TData>(ArraySegment <byte> input) where TData : class { byte[] filtro = TratamentoMensagem.FiltrarArray(input); string mensagem = TratamentoMensagem.ArrayToString(filtro); SocketData <TData> socket = TratamentoMensagem.RecuperarObjeto <TData>(mensagem); socket.DataResposta = DateTime.Now.ToString(); return(socket); }