ClientSbeSession

StockSharp.Server.Sbe

Клиентская сессия SBE — одна на каждого подключенного клиента.

Наследует: SbeSession

Реализует: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable

Конструкторы

ClientSbeSession
public ClientSbeSession(string version, string language, Stream clientStream, TcpClient client, SbeSession serverSession, string authorizationToken, ISessionTransactionIdStorage transactionIdStorage, bool isDemo, int maxPendingMessages)
clientSbeSession = ClientSbeSession(version, language, clientStream, client, serverSession, authorizationToken, transactionIdStorage, isDemo, maxPendingMessages)

Инициализирует новый экземпляр ClientSbeSession.

Свойства

AuthorizationToken
public string AuthorizationToken { get; }
value = clientSbeSession.AuthorizationToken

Токен авторизации, назначенный после успешного входа в систему.

BytesReceived
public long BytesReceived { get; set; }
value = clientSbeSession.BytesReceived
clientSbeSession.BytesReceived = value

Количество полученных байтов.

BytesSent
public long BytesSent { get; set; }
value = clientSbeSession.BytesSent
clientSbeSession.BytesSent = value

Количество отправленных байтов.

ErrorCount
public int ErrorCount { get; set; }
value = clientSbeSession.ErrorCount
clientSbeSession.ErrorCount = value

Количество ошибок.

IsConnected
public override bool IsConnected { get; }
value = clientSbeSession.IsConnected

Получите статус соединения.

IsDemo
public bool IsDemo { get; }
value = clientSbeSession.IsDemo

Будь то демо-сессия.

Language
public string Language { get; }
value = clientSbeSession.Language

Языковой код клиента.

OutgoingQueueCount
public int OutgoingQueueCount { get; }
value = clientSbeSession.OutgoingQueueCount

Текущий размер очередей исходящих сообщений (-1, если канал не выставляет счет).

RemoteEndPoint
public EndPoint RemoteEndPoint { get; }
value = clientSbeSession.RemoteEndPoint

Удаленная конечная точка подключенного клиента.

Serializer
public SbeRecordSerializer Serializer { get; }
value = clientSbeSession.Serializer

Сериализатор SBE для этой сессии.

ServerSession
public SbeSession ServerSession { get; }
value = clientSbeSession.ServerSession

Конфигурация сеанса на стороне сервера.

TotalErrorCount
public int TotalErrorCount { get; set; }
value = clientSbeSession.TotalErrorCount
clientSbeSession.TotalErrorCount = value

Полный подсчет ошибок.

TransactionIdStorage
public ISessionTransactionIdStorage TransactionIdStorage { get; }
value = clientSbeSession.TransactionIdStorage
UpdatedTime
public DateTime UpdatedTime { get; }
value = clientSbeSession.UpdatedTime

Таймстэмп последнего полученного сообщения (сердцебиение или данные).

Version
public string Version { get; }
value = clientSbeSession.Version

Версия клиентского приложения.

WriteBuffer
public byte[] WriteBuffer { get; }
value = clientSbeSession.WriteBuffer

Каждый сеанс нуждается в собственном буфере, потому что исходящие сообщения обрабатываются одновременно в отдельных задачах. Буфер растет по требованию (см. Int32)), поэтому большие кадры не сбрасываются.

Методы

DisposeManaged
protected override void DisposeManaged()
clientSbeSession.DisposeManaged()

Освободите ресурсы.

EnqueueWork
public bool EnqueueWork(ServerSubscription subscription, string requestId, Func<ClientSbeSession, string, CancellationToken, ValueTask<bool>> handler)
result = clientSbeSession.EnqueueWork(subscription, requestId, handler)

Поставьте рабочий элемент сериализации в очередь для обработки. Возвращает false, если очередь заполнена (противодавление клиента).

EnsureWriteBuffer
public void EnsureWriteBuffer(int minSize)
clientSbeSession.EnsureWriteBuffer(minSize)

Гарантирует, что буфер записи может содержать как минимум байты, перераспределяя (удваивая емкость), когда текущий буфер слишком мал.

minSize
Минимально необходимый размер буфера в байтах.
IncreaseBytesSent
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)

Увеличьте BytesSent.

count
Ценность.
IncreaseErrorCount
public override void IncreaseErrorCount()
clientSbeSession.IncreaseErrorCount()

Увеличьте ErrorCount.

Init
public Task Init(SbeServerSettings serverSettings, Action<ClientSbeSession> logout, CancellationToken cancellationToken)
result = clientSbeSession.Init(serverSettings, logout, cancellationToken)

Запустите цикл обработки исходящего сообщения.

Ping
public void Ping()
clientSbeSession.Ping()

Обновляет временную метку последней активности до текущего момента.

ResetErrorCount
public override void ResetErrorCount()
clientSbeSession.ResetErrorCount()

Сброс ErrorCount.

WriteFramedMessageAsync
public ValueTask WriteFramedMessageAsync(ReadOnlyMemory<byte> payload, CancellationToken cancellationToken)
result = clientSbeSession.WriteFramedMessageAsync(payload, cancellationToken)

Запишите сообщение в рамке SBE в клиентский поток. [префикс длины 4 байта (uint32 LE)][полезная нагрузка сообщения SBE]