Exemple #1
0
        private void AceitarNovoCliente(TcpClient tcpClient)
        {
            var cliente = new Cliente(tcpClient);

            var entrar = (Entrar)cliente.Receber();

            if (clientes.ContainsKey(entrar.Apelido))
            {
                cliente.Enviar(new Erro() { Mensagem = "Apelido já está em uso." });
                cliente.Encerrar();
                return;
            }

            cliente.Apelido = entrar.Apelido;
            cliente.RecebeuMensagem += cliente_RecebeuMensagem;
            cliente.DisparouException += cliente_DisparouException;
            cliente.Desconectou += cliente_Desconectou;

            lock (this)
            {
                clientes.Add(cliente.Apelido, cliente);
                cliente.Enviar(new Ok());
                NotificarMudancaListaClientes();
            }

            EnviarMensagem(new AvisoServidor()
            {
                Aviso = $"{cliente.Apelido} entrou na sala."
            });

            cliente.Iniciar();
        }
Exemple #2
0
 private void FinalizarCliente(Cliente cliente)
 {
     cliente.Encerrar();
     cliente.RecebeuMensagem -= cliente_RecebeuMensagem;
     cliente.DisparouException -= cliente_DisparouException;
     cliente.Desconectou -= cliente_Desconectou;
 }