static void RepeaterListener() { IPAddress localAdd = IPAddress.Parse(Comunicacao.GetLocalIpAddress()); TcpListener listener = new TcpListener(localAdd, 3000); listener.Start(); while (true) { GerenciadorDeExecucao.Gerenciar(Comunicacao.Listener(listener)); } }
static void RepeaterSend() { while (true) { Random r = new Random(); Console.WriteLine(r.Next(5, 10)); try { TcpClient client = new TcpClient("127.0.0.1", 5000); Comunicacao.Send(new Request { Client = client, Data = new { teste = 10, blablabla = "teste" } }); } catch (Exception e) { } } }
public static void Gerenciar(Request request) { if (request.Data == null) { return; } switch ((string)request.Data.tipo) { case "definir-nome": Console.WriteLine("Usuario " + request.Data.nome + " conectou."); request.NomeUsuario = request.Data.nome; conexoes.Add(request); Comunicacao.SendResponse(request, new { status = "ok" }); break; case "obter-usuarios-online": Console.WriteLine("Enviando lista de usuarios."); Comunicacao.SendResponse(request, new { status = "ok", data = UsuariosOnline() }); break; case "desconectar": Comunicacao.SendResponse(request, new { status = "ok" }); RemoverUsuario((string)request.Data.usuario); Console.WriteLine("Usuario " + request.Data.usuario + " desconectou."); break; case "obter-mensagens": Console.WriteLine(mensagens.Count); Comunicacao.SendResponse(request, mensagens); break; case "enviar-mensagem": mensagens.Add(new Mensagem { usuario = request.Data.usuario, mensagem = request.Data.mensagem }); Comunicacao.SendResponse(request, new { status = "ok" }); Console.WriteLine(request.Data.usuario + " disse: " + request.Data.mensagem); break; } }