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); } }
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); } }
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); }