Example #1
0
        public static MensagemServidor UpdateEstadoGlobalSistema(string idCliente, string idJogo, string idOrigem, string destino, RoomDesc novaSala, int pontuacaoAntiga, int pontuacaoNova, bool jogoTerminou, string resultadoAccaoCliente, string guid)
        {
            MensagemServidor mensagem = new MensagemServidor(idCliente, idOrigem, destino, Mensagem.UPDATEESTADOGLOBAL);
             mensagem._novaSala = novaSala;
             mensagem._idJogo = idJogo;
             mensagem._pontuacaoAntiga = pontuacaoAntiga;
             mensagem._pontuacaoNova = pontuacaoNova;
             mensagem._jogoTerminou = jogoTerminou;
             mensagem._resultadoAccaoCliente = resultadoAccaoCliente;
             mensagem._idUnico = guid;

             return mensagem;
        }
Example #2
0
 public static MensagemServidor RegistaNovoJogadorNoSistema(string idCliente, string idOrigem, string idDestino)
 {
     MensagemServidor mensagem = new MensagemServidor(idCliente, idOrigem, idDestino, Mensagem.REGISTANOVOJOGADORNOSISTEMA);
      return mensagem;
 }
Example #3
0
        public static MensagemServidor RemoveServidorDoSistema(string idOrigem, string idDestino, string idServidorARemover, ArrayList lstJogos)
        {
            MensagemServidor mensagem = new MensagemServidor("Nao vem de um cliente", idOrigem, idDestino, Mensagem.REMOVESERVIDORSISTEMA);
             mensagem._novoEstado = lstJogos;

             return mensagem;
        }
Example #4
0
        public static MensagemServidor MorreuOutroServidor(string meuId, string idServidorQueMorreu, ArrayList listaJogos)
        {
            MensagemServidor mensagem = new MensagemServidor("Nao vem de um cliente", meuId, Mensagem.IPBROADCAST, Mensagem.MORREU_OUTRO_SERVIDOR);
             mensagem._idServidorQueMorreu = idServidorQueMorreu;
             mensagem._listaJogos = listaJogos;

             return mensagem;
        }
Example #5
0
        public static MensagemServidor PedidoTentativaAbrirTesouro(string idCliente, string idJogo, string idOriginadorMensagem, string idServidorDestino, int numSala, string guid)
        {
            MensagemServidor mensagem = new MensagemServidor(idCliente, idOriginadorMensagem, idServidorDestino, TENTATIVAABRIRTESOURO);
             mensagem._idJogo = idJogo;
             mensagem._numSala = numSala;
             mensagem._idUnico = guid;

             return mensagem;
        }
Example #6
0
 public static MensagemServidor FazSTOP(string meuId, string servidorMortoCausouStop, string idCliente, string idJogo, int numSala)
 {
     MensagemServidor mensagem = new MensagemServidor(idCliente, meuId, Mensagem.IPBROADCAST, Mensagem.STOP);
      mensagem._idJogo = idJogo;
      mensagem._numSala = numSala;
      mensagem._idServidorQueMorreu = servidorMortoCausouStop;
      return mensagem;
 }
Example #7
0
 public static MensagemServidor MensagemAvisoFosteDeclaradoMorto(string meuId, string idServidorQueMorreu)
 {
     MensagemServidor mensagem = new MensagemServidor("Nao vem de um cliente", meuId, idServidorQueMorreu, Mensagem.FOSTE_CONSIDERADO_MORTO);
      return mensagem;
 }
Example #8
0
 public static MensagemServidor FazReplyStop(string meuId, string idDestinatario, string servidorMortoCausouStop, string idCliente, string idJogo, int numSala)
 {
     MensagemServidor mensagem = new MensagemServidor(idCliente, meuId, idDestinatario, Mensagem.REPLY_STOP);
      mensagem._idJogo = idJogo;
      mensagem._numSala = numSala;
      mensagem._idServidorQueMorreu = servidorMortoCausouStop;
      return mensagem;
 }
Example #9
0
 public static MensagemServidor EntraNovoJogadorNumJogo(string idCliente, string idOrigem, string idDestino, string idJogo)
 {
     MensagemServidor mensagem = new MensagemServidor(idCliente, idOrigem, idDestino, Mensagem.ENTRANOVOJOGADORNUMJOGO);
      mensagem._idJogo = idJogo;
      return mensagem;
 }
Example #10
0
 public static MensagemServidor AvisaServidorVaiSair(string idOrigem, string idDestino)
 {
     MensagemServidor mensagem = new MensagemServidor("Nao vem de um cliente", idOrigem, idDestino, Mensagem.AVISOSERVIDORVAISAIR);
      return mensagem;
 }
Example #11
0
 public static MensagemServidor AdicionaNovoJogoSistema(string idOrigem, string idDestino, Jogo jogo)
 {
     string idCliente = "Nao 'e importante saber quem criou o jogo";
      MensagemServidor mensagem = new MensagemServidor(idCliente, idOrigem, idDestino, Mensagem.ADICIONANOVOJOGOSISTEMA);
      mensagem._novoJogo = jogo;
      return mensagem;
 }
Example #12
0
        /// <summary>
        /// Envia de facto a mensagem para o servidor (trata do problema do control-c
        /// </summary>
        /// <param name="mensagem">Mensagem a ser enviada para o outro servidor</param>
        private static void enviaMensagemParaServidor(MensagemServidor mensagem)
        {
            Servidor servidorDestino = Servidor.GetServidor(mensagem._idDestinatarioMensagem, ServerMain.TodosServidores);
             try
             {
            //envia mensagem para o cliente
            servidorDestino.Ligacao.MessageQueue(mensagem);

            //Se nao der erro
            //Se for uma mensagem da qual espero retorno (pode haver timeout)
            if (mensagem.EMsgComRetorno() == true)
            {
               Configuration.Debug("Vou meter para enviar uma mensagem do tipo:" + mensagem.Tipo + " para: " + mensagem._idDestinatarioMensagem, Configuration.PRI_MIN);
               //Só as mensagens do tipo de servidor é que podem ter retorno
               MensagemServidor msg = (MensagemServidor)mensagem;
               lock (_lstRespostasMensagensPendentes)
               {
                  _lstRespostasMensagensPendentes.Add(msg);
               }
            }

             }
             catch (System.Runtime.Remoting.RemotingException exception)
             {
            if (servidorDestino.Vivo == false)
            {
               Configuration.Debug("Comunicaçao morreu a meio porque o outro servidor fechou-se a meio. Era o esperado.", Configuration.PRI_MAX);
               return;
            }
            //para tirar o warning
            exception.GetType();
            string msgErro = "Servidor morto com control-C, vou remover da lista de servidores, redistribuir todos jogos e avisar outros";
            Configuration.Debug("Servidor morto: " + mensagem._idDestinatarioMensagem + " tipo: " + mensagem.Tipo, Configuration.PRI_MAX);
            Configuration.Debug(msgErro, Configuration.PRI_MAX);

            TrataDescobertaMorteServidor(servidorDestino.Identificacao, mensagem.IdCliente, mensagem.IdJogo, mensagem.NumSala);
             }
             catch (System.Net.Sockets.SocketException exception)
             {
            if (servidorDestino.Vivo == false)
            {
               Configuration.Debug("Comunicaçao morreu a meio porque o outro servidor fechou-se a meio. Era o esperado.", Configuration.PRI_MAX);
               return;
            }
            //para tirar o warning
            exception.GetType();
            string msgErro = "Servidor morto com control-C, vou remover da lista de servidores, redistribuir todos jogos e avisar outros";
            Configuration.Debug("Servidor morto: " + mensagem._idDestinatarioMensagem + " tipo: " + mensagem.Tipo, Configuration.PRI_MAX);
            Configuration.Debug(msgErro, Configuration.PRI_MAX);

            TrataDescobertaMorteServidor(servidorDestino.Identificacao, mensagem.IdCliente, mensagem.IdJogo, mensagem.NumSala);
             }
        }