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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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());
        }