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(); }
private void FinalizarCliente(Cliente cliente) { cliente.Encerrar(); cliente.RecebeuMensagem -= cliente_RecebeuMensagem; cliente.DisparouException -= cliente_DisparouException; cliente.Desconectou -= cliente_Desconectou; }