ClientSbeSession
SBE-Clientsitzung – eine pro angeschlossenem Client.
Erbt von: SbeSession
Implementiert: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable
Konstruktoren
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
public string AuthorizationToken { get; }
value = clientSbeSession.AuthorizationToken
Autorisierungstoken, die nach erfolgreicher Anmeldung zugewiesen wurden.
public long BytesReceived { get; set; }
value = clientSbeSession.BytesReceived
clientSbeSession.BytesReceived = value
Die Anzahl der empfangenen Bytes.
public long BytesSent { get; set; }
value = clientSbeSession.BytesSent
clientSbeSession.BytesSent = value
Die Anzahl der gesendeten Bytes.
public int ErrorCount { get; set; }
value = clientSbeSession.ErrorCount
clientSbeSession.ErrorCount = value
Die Anzahl der Fehler.
public override bool IsConnected { get; }
value = clientSbeSession.IsConnected
Verbindungsstatus erhalten.
public bool IsDemo { get; }
value = clientSbeSession.IsDemo
Ob es sich um eine Demo-Sitzung handelt.
public int OutgoingQueueCount { get; }
value = clientSbeSession.OutgoingQueueCount
Aktuelle Größe der ausgehenden Nachrichtenwarteschlange (-1, wenn der Kanal keine Zählung ausstellt).
public EndPoint RemoteEndPoint { get; }
value = clientSbeSession.RemoteEndPoint
Remote-Endpunkt des verbundenen Clients.
public SbeRecordSerializer Serializer { get; }
value = clientSbeSession.Serializer
SBE-Serializer für diese Sitzung.
public SbeSession ServerSession { get; }
value = clientSbeSession.ServerSession
Serverseitige Sitzungskonfiguration.
public int TotalErrorCount { get; set; }
value = clientSbeSession.TotalErrorCount
clientSbeSession.TotalErrorCount = value
Gesamtzahl der Fehler.
public ISessionTransactionIdStorage TransactionIdStorage { get; }
value = clientSbeSession.TransactionIdStorage
public DateTime UpdatedTime { get; }
value = clientSbeSession.UpdatedTime
Zeitstempel der zuletzt empfangenen Nachricht (Herzschlag oder Daten).
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
protected override void DisposeManaged()
clientSbeSession.DisposeManaged()
Ressourcen freigeben.
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).
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.
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)
Erhöhen Sie BytesSent.
- count
- Wert.
public override void IncreaseErrorCount()
clientSbeSession.IncreaseErrorCount()
Erhöhen Sie ErrorCount.
public Task Init(SbeServerSettings serverSettings, Action<ClientSbeSession> logout, CancellationToken cancellationToken)
result = clientSbeSession.Init(serverSettings, logout, cancellationToken)
Starten Sie die ausgehende Nachrichtenverarbeitungsschleife.
public void Ping()
clientSbeSession.Ping()
Aktualisiert den Zeitstempel der letzten Aktivität auf jetzt.
public override void ResetErrorCount()
clientSbeSession.ResetErrorCount()
Reset ErrorCount.
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]