ClientFixSession
Representa uma sessão de cliente FIX conectada com seu próprio escritor, dialeto e fila de mensagens enviadas.
Herda de: FixSession
Implementa: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable
Construtores
public ClientFixSession(IFixDialect fixDialect, string version, string language, Stream clientStream, TcpClient client, TimeSpan quotesInterval, FixSession serverSession, string authorizationToken, ISessionTransactionIdStorage transactionIdStorage, bool checkSumDisabled, bool isDemo, int maxPendingMessages)
clientFixSession = ClientFixSession(fixDialect, version, language, clientStream, client, quotesInterval, serverSession, authorizationToken, transactionIdStorage, checkSumDisabled, isDemo, maxPendingMessages)
Inicializa uma nova instância do ClientFixSession.
- fixDialect
- FIX dialect para análise e escrita de mensagens.
- version
- FIX protocolo versão string.
- language
- Preferência da língua do cliente.
- clientStream
- Fluxo de rede para comunicação.
- client
- Ligação ao cliente TCP.
- quotesInterval
- Intervalo para a agregação de atualizações de cotações.
- serverSession
- Configuração da sessão do lado do servidor pai.
- authorizationToken
- Token de autorização retornado após o login bem- sucedido.
- transactionIdStorage
- Armazenamento para mapeamento de IDs de solicitação FIX para IDs internos de transação.
- checkSumDisabled
- Se a validação do checksum FIX está desabilitada.
- isDemo
- Se esta é uma sessão de demonstração.
- maxPendingMessages
- O número máximo de itens de trabalho enviados em fila antes da contrapressão forçar uma desconexão. Zero significa não ligado.
Propriedades
public string AuthorizationToken { get; }
value = clientFixSession.AuthorizationToken
Token de autorização atribuído a esta sessão após o login bem- sucedido.
public long BytesReceived { get; set; }
value = clientFixSession.BytesReceived
clientFixSession.BytesReceived = value
O número de bytes recebidos.
public long BytesSent { get; set; }
value = clientFixSession.BytesSent
clientFixSession.BytesSent = value
O número de bytes enviados.
public int ErrorCount { get; set; }
value = clientFixSession.ErrorCount
clientFixSession.ErrorCount = value
O número de erros.
public IFixDialect FixDialect { get; }
value = clientFixSession.FixDialect
FIX dialeto usado por esta sessão para serialização de mensagens.
public override bool IsConnected { get; }
value = clientFixSession.IsConnected
Obter o estado da ligação.
public bool IsDemo { get; }
value = clientFixSession.IsDemo
Se esta sessão funciona no modo de demonstração.
public string Language { get; }
value = clientFixSession.Language
Preferência da língua do cliente (e.g. "en", "ru").
public int OutgoingQueueCount { get; }
value = clientFixSession.OutgoingQueueCount
Tamanho atual da fila de mensagens de saída (- 1 se o canal não expor uma contagem).
public TimeSpan QuotesInterval { get; }
value = clientFixSession.QuotesInterval
Intervalo para a agregação de atualizações incrementais de cotação antes de enviar.
public EndPoint RemoteEndPoint { get; }
value = clientFixSession.RemoteEndPoint
Endereço de endpoint remoto do cliente conectado.
public IFixServerSerializer Serializer { get; private set; }
value = clientFixSession.Serializer
clientFixSession.Serializer = value
O serializador FIX para esta sessão.
public FixSession ServerSession { get; }
value = clientFixSession.ServerSession
Configuração da sessão do lado do servidor pai.
public int TotalErrorCount { get; set; }
value = clientFixSession.TotalErrorCount
clientFixSession.TotalErrorCount = value
Contagem total de erros.
public ISessionTransactionIdStorage TransactionIdStorage { get; }
value = clientFixSession.TransactionIdStorage
public DateTime UpdatedTime { get; }
value = clientFixSession.UpdatedTime
Hora de UTC da última mensagem recebida (batimento cardíaco ou dados).
public string Version { get; }
value = clientFixSession.Version
Versão do protocolo FIX relatada pelo cliente durante o logon.
public IFixWriter Writer { get; }
value = clientFixSession.Writer
FIX writer para serialização de mensagens enviadas.
Métodos
protected override void DisposeManaged()
clientFixSession.DisposeManaged()
Libertar recursos.
public bool EnqueueWork(ServerSubscription subscription, string requestId, Func<ClientFixSession, string, CancellationToken, ValueTask<bool>> handler)
result = clientFixSession.EnqueueWork(subscription, requestId, handler)
Em fila um item de trabalho de serialização para processamento. Retorna se a fila estiver completa ou completa (contrapressão do cliente) para que o chamador possa forçar uma desconexão.
public override void IncreaseBytesSent(int count)
clientFixSession.IncreaseBytesSent(count)
Aumentar BytesSent.
- count
- Valor.
public override void IncreaseErrorCount()
clientFixSession.IncreaseErrorCount()
Aumentar ErrorCount.
public Task Init(FixServerSettings serverSettings, Action<ClientFixSession> logout, CancellationToken cancellationToken)
result = clientFixSession.Init(serverSettings, logout, cancellationToken)
Inicie o ciclo de processamento de mensagens para esta sessão.
- serverSettings
- Configurações do servidor (utilizadas para limiares de erro máximo).
- logout
- Chamada para invocar quando a sessão deve ser desconectada com força.
- cancellationToken
- Inscrição de cancelamento.
Retorna: Tarefa que corre para o tempo de vida da sessão.
public void InitSerializer(IFixReader reader)
clientFixSession.InitSerializer(reader)
Inicializar o serializador com o leitor indicado.
- reader
- O leitor FIX para mensagens recebidas.
public void Ping()
clientFixSession.Ping()
Atualizar a última hora de atividade para a hora atual do UTC.
public override void ResetErrorCount()
clientFixSession.ResetErrorCount()
Reiniciar ErrorCount.