private async Task RunWebSockets() { RegistroModel registro = new RegistroModel(); registro = _services_registro.RegistrarInformacoesMaquina(); var client = new ClientWebSocket(); await client.ConnectAsync(new Uri($"ws://{endereco}:{porta}/ws"), CancellationToken.None); MensagemModel mensagem = new MensagemModel(registro); await _clientWebSocketSendMessage.Send(client, mensagem.ToString()); Console.WriteLine(">> Connected!"); var sending = Task.Run(async() => { string line; while ((line = Console.ReadLine()) != null && line != String.Empty) { var bytes = Encoding.UTF8.GetBytes(line); await client.SendAsync(new ArraySegment <byte>(bytes), WebSocketMessageType.Text, true, CancellationToken.None); } await client.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None); }); var receiving = Receiving(client); await Task.WhenAll(sending, receiving); }
public override async Task ReceiveAsync(WebSocket socket, WebSocketReceiveResult result, byte[] buffer) { var socketId = WebSocketConnectionManager.GetId(socket); var input = Encoding.UTF8.GetString(buffer, 0, result.Count); MensagemModel mensagem = Newtonsoft.Json.JsonConvert.DeserializeObject <MensagemModel>(input); await SendMessageToAllAsync(mensagem.ToString()); }
public override async Task OnConnected(WebSocket socket) { await base.OnConnected(socket); var socketId = WebSocketConnectionManager.GetId(socket); MensagemModel mensagem = new MensagemModel(); mensagem.TipoMensagem = Models.Enum.TipoMensagemEnum.MensagemConectado; mensagem.data = $"{socketId} is now connected"; await SendMessageToAllAsync(mensagem.ToString()); }
public async Task Escrever() { List <string> retorno = new List <string>(); try { retorno = new ComandoServices().Execute(_mensagem.data); } catch (Exception ex) { }; Console.WriteLine(_input); string data = ""; foreach (string item in retorno) { Console.WriteLine(item); data += item + "\n"; } _mensagem.data = data; _mensagem.TipoMensagem = Models.Enum.TipoMensagemEnum.MensagemResposta; await _clientWebSocketSendMessage.Send(_client, _mensagem.ToString()); }