ClientFixSession
Представляет подключенный сеанс клиента FIX с собственным модулем записи, диалектом и очередью исходящих сообщений.
Наследует: FixSession
Реализует: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable
Конструкторы
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)
Инициализирует новый экземпляр ClientFixSession.
- fixDialect
- FIX-диалект для анализа и записи сообщений.
- version
- Строка версии протокола FIX.
- language
- Языковые предпочтения клиента.
- clientStream
- Сетевой поток для связи.
- client
- TCP-клиентское соединение.
- quotesInterval
- Интервал агрегирования обновлений котировок.
- serverSession
- Конфигурация сеанса на стороне родительского сервера.
- authorizationToken
- Токен авторизации возвращается после успешного входа в систему.
- transactionIdStorage
- Хранилище для сопоставления идентификаторов запросов FIX с идентификаторами внутренних транзакций.
- checkSumDisabled
- Отключена ли проверка контрольной суммы FIX.
- isDemo
- Будь то демо-сессия.
- maxPendingMessages
- Максимальное количество исходящих рабочих элементов в очереди, прежде чем противодавление приведет к отключению. Ноль означает неограниченность.
Свойства
public string AuthorizationToken { get; }
value = clientFixSession.AuthorizationToken
Токен авторизации, назначенный на эту сессию после успешного входа в систему.
public long BytesReceived { get; set; }
value = clientFixSession.BytesReceived
clientFixSession.BytesReceived = value
Количество полученных байтов.
public long BytesSent { get; set; }
value = clientFixSession.BytesSent
clientFixSession.BytesSent = value
Количество отправленных байтов.
public int ErrorCount { get; set; }
value = clientFixSession.ErrorCount
clientFixSession.ErrorCount = value
Количество ошибок.
public IFixDialect FixDialect { get; }
value = clientFixSession.FixDialect
Диалект FIX, используемый в данной сессии для сериализации сообщений.
public override bool IsConnected { get; }
value = clientFixSession.IsConnected
Получите статус соединения.
public bool IsDemo { get; }
value = clientFixSession.IsDemo
Работает ли эта сессия в демо-режиме.
public string Language { get; }
value = clientFixSession.Language
Предпочтение языка клиента (e.g. "en", "ru").
public int OutgoingQueueCount { get; }
value = clientFixSession.OutgoingQueueCount
Текущий размер очередей исходящих сообщений (-1, если канал не выставляет счет).
public TimeSpan QuotesInterval { get; }
value = clientFixSession.QuotesInterval
Интервал для агрегирования дополнительных обновлений котировок перед отправкой.
public EndPoint RemoteEndPoint { get; }
value = clientFixSession.RemoteEndPoint
Удаленный адрес конечной точки подключенного клиента.
public IFixServerSerializer Serializer { get; private set; }
value = clientFixSession.Serializer
clientFixSession.Serializer = value
Сериализатор FIX для этой сессии.
public FixSession ServerSession { get; }
value = clientFixSession.ServerSession
Конфигурация сеанса на стороне родительского сервера.
public int TotalErrorCount { get; set; }
value = clientFixSession.TotalErrorCount
clientFixSession.TotalErrorCount = value
Полный подсчет ошибок.
public ISessionTransactionIdStorage TransactionIdStorage { get; }
value = clientFixSession.TransactionIdStorage
public DateTime UpdatedTime { get; }
value = clientFixSession.UpdatedTime
UTC-метка времени последнего полученного сообщения (сердцебиение или данные).
public string Version { get; }
value = clientFixSession.Version
Версия протокола FIX, сообщенная клиентом во время входа в систему.
public IFixWriter Writer { get; }
value = clientFixSession.Writer
FIX-писатель для сериализации исходящих сообщений.
Методы
protected override void DisposeManaged()
clientFixSession.DisposeManaged()
Освободите ресурсы.
public bool EnqueueWork(ServerSubscription subscription, string requestId, Func<ClientFixSession, string, CancellationToken, ValueTask<bool>> handler)
result = clientFixSession.EnqueueWork(subscription, requestId, handler)
Поставьте рабочий элемент сериализации в очередь для обработки. Возвращает значение, если очередь заполнена или завершена (противодавление клиента), чтобы вызывающий абонент мог принудительно отключиться.
public override void IncreaseBytesSent(int count)
clientFixSession.IncreaseBytesSent(count)
Увеличьте BytesSent.
- count
- Ценность.
public override void IncreaseErrorCount()
clientFixSession.IncreaseErrorCount()
Увеличьте ErrorCount.
public Task Init(FixServerSettings serverSettings, Action<ClientFixSession> logout, CancellationToken cancellationToken)
result = clientFixSession.Init(serverSettings, logout, cancellationToken)
Запустите цикл обработки исходящих сообщений для этого сеанса.
- serverSettings
- Настройки сервера (используются для максимальных порогов ошибок).
- logout
- Обратный вызов для вызова, когда сеанс необходимо принудительно отключить.
- cancellationToken
- Токен отмены.
Возвращает: Задача, которая выполняется в течение всего времени существования сеанса.
public void InitSerializer(IFixReader reader)
clientFixSession.InitSerializer(reader)
Инициализируйте сериализатор с помощью данного читателя.
- reader
- Читатель FIX для входящих сообщений.
public void Ping()
clientFixSession.Ping()
Обновите временную метку последней активности до текущего времени UTC.
public override void ResetErrorCount()
clientFixSession.ResetErrorCount()
Сброс ErrorCount.