ClientSbeSession
SBE sesión de clientes — uno por cliente conectado.
Hereda de: SbeSession
Implementa: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable
Constructores
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)
Inicia una nueva instancia de la ClientSbeSession.
Propiedades
public string AuthorizationToken { get; }
value = clientSbeSession.AuthorizationToken
Autorización token asignada después de tener éxito en la sesión.
public long BytesReceived { get; set; }
value = clientSbeSession.BytesReceived
clientSbeSession.BytesReceived = value
El número de bytes recibido.
public long BytesSent { get; set; }
value = clientSbeSession.BytesSent
clientSbeSession.BytesSent = value
El número de bytes enviado.
public int ErrorCount { get; set; }
value = clientSbeSession.ErrorCount
clientSbeSession.ErrorCount = value
El número de errores.
public override bool IsConnected { get; }
value = clientSbeSession.IsConnected
Obtenga el estado de conexión.
public bool IsDemo { get; }
value = clientSbeSession.IsDemo
Ya sea una sesión de demostración.
public string Language { get; }
value = clientSbeSession.Language
Código de idioma del cliente.
public int OutgoingQueueCount { get; }
value = clientSbeSession.OutgoingQueueCount
Tamaño actual de la cola de mensaje saliente (-1 si el canal no expone un conteo).
public EndPoint RemoteEndPoint { get; }
value = clientSbeSession.RemoteEndPoint
Punto de extremo remoto del cliente conectado.
public SbeRecordSerializer Serializer { get; }
value = clientSbeSession.Serializer
SBE serializer para esta sesión.
public SbeSession ServerSession { get; }
value = clientSbeSession.ServerSession
Configuración de sesión del lado del servidor.
public int TotalErrorCount { get; set; }
value = clientSbeSession.TotalErrorCount
clientSbeSession.TotalErrorCount = value
Cuenta total de error.
public ISessionTransactionIdStorage TransactionIdStorage { get; }
value = clientSbeSession.TransactionIdStorage
public DateTime UpdatedTime { get; }
value = clientSbeSession.UpdatedTime
Timetamp of the last received message (heartbeat or data).
public string Version { get; }
value = clientSbeSession.Version
Versión de aplicación cliente.
public byte[] WriteBuffer { get; }
value = clientSbeSession.WriteBuffer
El buffer de escritura por sesión para la serialización de SBE. Cada sesión necesita su propio buffer porque los mensajes salientes se procesan simultáneamente en tareas separadas. El búfer crece a la demanda (ver Int32)) por lo que no se eliminan marcos grandes.
Métodos
protected override void DisposeManaged()
clientSbeSession.DisposeManaged()
Libera recursos.
public bool EnqueueWork(ServerSubscription subscription, string requestId, Func<ClientSbeSession, string, CancellationToken, ValueTask<bool>> handler)
result = clientSbeSession.EnqueueWork(subscription, requestId, handler)
Encuentra un artículo de trabajo de serialización para el procesamiento. Devuelve falso si la cola está llena (la retropresión cliente).
public void EnsureWriteBuffer(int minSize)
clientSbeSession.EnsureWriteBuffer(minSize)
Garantiza que el búfer de escritura puede contener al menos bytes, reasignar (capacidad de duplicación) cuando el búfer actual es demasiado pequeño.
- minSize
- Tamaño mínimo requerido del búfer en bytes.
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)
Incrementar BytesSent.
- count
- Valor.
public override void IncreaseErrorCount()
clientSbeSession.IncreaseErrorCount()
Incrementar ErrorCount.
public Task Init(SbeServerSettings serverSettings, Action<ClientSbeSession> logout, CancellationToken cancellationToken)
result = clientSbeSession.Init(serverSettings, logout, cancellationToken)
Comience el bucle de procesamiento de mensajes salientes.
public override void ResetErrorCount()
clientSbeSession.ResetErrorCount()
Reset ErrorCount.
public ValueTask WriteFramedMessageAsync(ReadOnlyMemory<byte> payload, CancellationToken cancellationToken)
result = clientSbeSession.WriteFramedMessageAsync(payload, cancellationToken)
Escriba SBE mensaje enmarcado al flujo del cliente. [4-byte longitud prefix (uint32 LE)][SBE message payload]