示例#1
0
        private void sockServer_OnRequestReceived(object sender, MessageEventArgs args)
        {
            try
            {
                string message = args.Message;

                DadosRequisicaoStreamer dados = JsonConvert.DeserializeObject <DadosRequisicaoStreamer>(message);
                int    acao        = Int32.Parse(dados.acao);
                string tipo        = dados.tipo;
                string instrumento = dados.instrumento;
                string sessionID   = dados.sessionID;

                logger.Info("SessionID[" + sessionID + "]: Requisicao acao[" + acao + "] tipo[" + tipo + "] instrumento[" + instrumento + "]");

                ClientHandlerState state = dctClientes[args.ClientNumber];

                switch (tipo)
                {
                case ConstantesMDS.TIPO_REQUISICAO_DESTAQUES:
                case ConstantesMDS.TIPO_REQUISICAO_RANKING:
                case ConstantesMDS.TIPO_REQUISICAO_NOTICIA:
                    logger.Error("TIPO DE SINAL NAO IMPLEMENTADO [" + tipo + "]");
                    break;

                case ConstantesMDS.TIPO_REQUISICAO_NEGOCIOS:
                    state.HandlerNegocios.TrataRequisicao(acao, tipo, instrumento, sessionID);
                    break;

                case ConstantesMDS.TIPO_REQUISICAO_LIVRO_NEGOCIOS:
                    state.HandlerLivroNegocios.TrataRequisicao(acao, tipo, instrumento, sessionID);
                    break;

                case ConstantesMDS.TIPO_REQUISICAO_LIVRO_OFERTAS:
                    state.HandlerLivroOfertas.TrataRequisicao(acao, tipo, instrumento, sessionID);
                    break;

                case ConstantesMDS.TIPO_REQUISICAO_LIVRO_OFERTAS_AGREGADO:
                    state.HandlerLivroOfertasAgregado.TrataRequisicao(acao, tipo, instrumento, sessionID);
                    break;

                default:
                    logger.Error("SessionID[" + sessionID + "]: Tipo de Mensagem invalida: [" + tipo + "]");
                    break;
                }
            }
            catch (Exception ex)
            {
                logger.Error("sockServer_OnRequestReceived(): " + ex.Message, ex);
            }
        }
示例#2
0
        private void sockServer_OnClientDisconnected(object sender, ClientDisconnectedEventArgs args)
        {
            logger.Info("Cliente [" + args.ClientNumber + "] desconectou");

            if (dctClientes.ContainsKey(args.ClientNumber))
            {
                ClientHandlerState state = dctClientes[args.ClientNumber];

                state.HandlerLivroNegocios.Stop();
                state.HandlerLivroOfertas.Stop();
                state.HandlerNegocios.Stop();
                state.HandlerLivroOfertasAgregado.Stop();

                dctClientes.Remove(args.ClientNumber);
            }
        }
示例#3
0
        private void sockServer_OnClientConnected(object sender, ClientConnectedEventArgs args)
        {
            logger.Info("Cliente [" + args.ClientNumber + "] [" + args.ClientSocket.RemoteEndPoint.ToString() + "] conectou");

            ClientHandlerState state = new ClientHandlerState();

            state.ClientNumber        = args.ClientNumber;
            state.ClientSocket        = args.ClientSocket;
            state.HandlerLivroOfertas = new StreamerClientHandlerLivroOfertas(args.ClientNumber, args.ClientSocket);
            state.HandlerLivroOfertas.Start();
            state.HandlerNegocios = new StreamerClientHandlerNegocios(args.ClientNumber, args.ClientSocket);
            state.HandlerNegocios.Start();
            state.HandlerLivroNegocios = new StreamerClientHandlerLivroNegocios(args.ClientNumber, args.ClientSocket);
            state.HandlerLivroNegocios.Start();
            state.HandlerLivroOfertasAgregado = new StreamerClientHandlerLivroOfertasAgregado(args.ClientNumber, args.ClientSocket);
            state.HandlerLivroOfertasAgregado.Start();
            state.TentativasSonda = 0;

            dctClientes.Add(args.ClientNumber, state);
        }