ClientSbeSession

StockSharp.Server.Sbe

SBE-Clientsitzung – eine pro angeschlossenem Client.

Erbt von: SbeSession

Implementiert: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable

Konstruktoren

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)

Initialisiert eine neue Instanz von ClientSbeSession.

Eigenschaften

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

Autorisierungstoken, die nach erfolgreicher Anmeldung zugewiesen wurden.

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

Die Anzahl der empfangenen Bytes.

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

Die Anzahl der gesendeten Bytes.

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

Die Anzahl der Fehler.

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

Verbindungsstatus erhalten.

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

Ob es sich um eine Demo-Sitzung handelt.

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

Code der Kundensprache.

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

Aktuelle Größe der ausgehenden Nachrichtenwarteschlange (-1, wenn der Kanal keine Zählung ausstellt).

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

Remote-Endpunkt des verbundenen Clients.

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

SBE-Serializer für diese Sitzung.

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

Serverseitige Sitzungskonfiguration.

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

Gesamtzahl der Fehler.

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

Zeitstempel der zuletzt empfangenen Nachricht (Herzschlag oder Daten).

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

Client-Anwendungsversion.

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

Schreibpuffer pro Sitzung für die SBE-Serialisierung. Jede Sitzung benötigt einen eigenen Puffer, da ausgehende Nachrichten gleichzeitig in separaten Aufgaben verarbeitet werden. Der Puffer wächst bei Bedarf (siehe Int32) so dass große Frames nicht fallen gelassen werden.

Methoden

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

Ressourcen freigeben.

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

Setzen Sie ein Serialisierungs-Arbeitselement zur Verarbeitung in eine Warteschlange ein und geben Sie false zurück, wenn die Warteschlange voll ist (Client-Back Pressure).

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

Stellt sicher, dass der Schreibpuffer mindestens Bytes enthalten kann, wodurch eine Neuzuweisung (Verdoppelungskapazität) erfolgt, wenn der aktuelle Puffer zu klein ist.

minSize
Mindestanforderungen an die Puffergröße in Bytes.
IncreaseBytesSent
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)

Erhöhen Sie BytesSent.

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

Erhöhen Sie ErrorCount.

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

Starten Sie die ausgehende Nachrichtenverarbeitungsschleife.

Ping
public void Ping()
clientSbeSession.Ping()

Aktualisiert den Zeitstempel der letzten Aktivität auf jetzt.

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

Reset ErrorCount.

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

Schreiben Sie die SBE-gerahmte Nachricht in den Client-Stream. [4-Byte-Länge-Präfix (uint32 LE)][SBE-Nachricht Nutzlast]