ClientSbeSession
Sessão de cliente SBE — um por cliente conectado.
Herda de: SbeSession
Implementa: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable
Construtores
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
public string AuthorizationToken { get; }
value = clientSbeSession.AuthorizationToken
Token de autorização atribuído após o login bem- sucedido.
public long BytesReceived { get; set; }
value = clientSbeSession.BytesReceived
clientSbeSession.BytesReceived = value
O número de bytes recebidos.
public long BytesSent { get; set; }
value = clientSbeSession.BytesSent
clientSbeSession.BytesSent = value
O número de bytes enviados.
public int ErrorCount { get; set; }
value = clientSbeSession.ErrorCount
clientSbeSession.ErrorCount = value
O número de erros.
public override bool IsConnected { get; }
value = clientSbeSession.IsConnected
Obter o estado da ligação.
public bool IsDemo { get; }
value = clientSbeSession.IsDemo
Se esta é uma sessão de demonstração.
public string Language { get; }
value = clientSbeSession.Language
Código de linguagem do cliente.
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).
public EndPoint RemoteEndPoint { get; }
value = clientSbeSession.RemoteEndPoint
Endpoint remoto do cliente conectado.
public SbeRecordSerializer Serializer { get; }
value = clientSbeSession.Serializer
Serializador SBE para esta sessão.
public SbeSession ServerSession { get; }
value = clientSbeSession.ServerSession
Configuração da sessão do lado do servidor.
public int TotalErrorCount { get; set; }
value = clientSbeSession.TotalErrorCount
clientSbeSession.TotalErrorCount = value
Contagem total de erros.
public ISessionTransactionIdStorage TransactionIdStorage { get; }
value = clientSbeSession.TransactionIdStorage
public DateTime UpdatedTime { get; }
value = clientSbeSession.UpdatedTime
Hora da última mensagem recebida (batimento cardíaco ou dados).
public string Version { get; }
value = clientSbeSession.Version
Versão de aplicação do cliente.
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
protected override void DisposeManaged()
clientSbeSession.DisposeManaged()
Libertar recursos.
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).
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.
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)
Aumentar BytesSent.
- count
- Valor.
public override void IncreaseErrorCount()
clientSbeSession.IncreaseErrorCount()
Aumentar ErrorCount.
public Task Init(SbeServerSettings serverSettings, Action<ClientSbeSession> logout, CancellationToken cancellationToken)
result = clientSbeSession.Init(serverSettings, logout, cancellationToken)
Iniciar o ciclo de processamento de mensagens enviadas.
public override void ResetErrorCount()
clientSbeSession.ResetErrorCount()
Reiniciar ErrorCount.
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]