ClientSbeSession

StockSharp.Server.Sbe

SBE sesión de clientes — uno por cliente conectado.

Hereda de: SbeSession

Implementa: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable

Constructores

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)

Inicia una nueva instancia de la ClientSbeSession.

Propiedades

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

Autorización token asignada después de tener éxito en la sesión.

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

El número de bytes recibido.

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

El número de bytes enviado.

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

El número de errores.

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

Obtenga el estado de conexión.

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

Ya sea una sesión de demostración.

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

Código de idioma del cliente.

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

Tamaño actual de la cola de mensaje saliente (-1 si el canal no expone un conteo).

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

Punto de extremo remoto del cliente conectado.

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

SBE serializer para esta sesión.

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

Configuración de sesión del lado del servidor.

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

Cuenta total de error.

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

Timetamp of the last received message (heartbeat or data).

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

Versión de aplicación cliente.

WriteBuffer
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

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

Libera recursos.

EnqueueWork
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).

EnsureWriteBuffer
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.
IncreaseBytesSent
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)

Incrementar BytesSent.

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

Incrementar ErrorCount.

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

Comience el bucle de procesamiento de mensajes salientes.

Ping
public void Ping()
clientSbeSession.Ping()

Actualiza el tempo de última actividad a ahora.

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

Reset ErrorCount.

WriteFramedMessageAsync
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]