ClientSbeSession

StockSharp.Server.Sbe

Sessão de cliente SBE — um por cliente conectado.

Herda de: SbeSession

Implementa: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable

Construtores

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)

Inicializa uma nova instância do ClientSbeSession.

Propriedades

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

Token de autorização atribuído após o login bem- sucedido.

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

O número de bytes recebidos.

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

O número de bytes enviados.

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

O número de erros.

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

Obter o estado da ligação.

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

Se esta é uma sessão de demonstração.

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

Código de linguagem do cliente.

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

Tamanho atual da fila de mensagens de saída (- 1 se o canal não expor uma contagem).

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

Endpoint remoto do cliente conectado.

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

Serializador SBE para esta sessão.

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

Configuração da sessão do lado do servidor.

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

Contagem total de erros.

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

Hora da última mensagem recebida (batimento cardíaco ou dados).

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

Versão de aplicação do cliente.

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

O buffer de gravação por sessão para a serialização do SBE. Cada sessão precisa do seu próprio buffer, porque as mensagens enviadas são processadas simultaneamente em tarefas separadas. O buffer cresce sob demanda (ver Int32)) para que as imagens grandes não sejam deixadas de lado.

Métodos

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

Libertar recursos.

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

Coloque um item de trabalho de serialização para processamento. Retorna false se a fila estiver cheia (contrapressão do cliente).

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

Garante que o buffer de gravação pode conter pelo menos bytes, realocando (doubling capacidade) quando o buffer atual é muito pequeno.

minSize
Tamanho mínimo necessário do buffer em bytes.
IncreaseBytesSent
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)

Aumentar BytesSent.

count
Valor.
IncreaseErrorCount
public override void IncreaseErrorCount()
clientSbeSession.IncreaseErrorCount()

Aumentar ErrorCount.

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

Iniciar o ciclo de processamento de mensagens enviadas.

Ping
public void Ping()
clientSbeSession.Ping()

Atualiza o horário da última atividade para agora.

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

Reiniciar ErrorCount.

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

Escreva a mensagem emoldurada pelo SBE para o fluxo do cliente. [4-byte length prefix (uint32 LE)][SBE message payload]