ClientSbeSession
StockSharp.Server.Sbe
SBEクライアントセッション — 接続されたクライアントごとに1つ。
継承元: SbeSession
実装: IMessageListenerSession, ILogReceiver, ILogSource, IDisposable
コンストラクター
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)
ClientSbeSession の新規インスタンスを初期化します。
プロパティ
AuthorizationToken
public string AuthorizationToken { get; }
value = clientSbeSession.AuthorizationToken
成功のログイン後に割り当てられた承認トークン。
BytesReceived
public long BytesReceived { get; set; }
value = clientSbeSession.BytesReceived
clientSbeSession.BytesReceived = value
受け取られたバイト数。
BytesSent
public long BytesSent { get; set; }
value = clientSbeSession.BytesSent
clientSbeSession.BytesSent = value
送信されたバイト数。
ErrorCount
public int ErrorCount { get; set; }
value = clientSbeSession.ErrorCount
clientSbeSession.ErrorCount = value
エラー数。
IsConnected
public override bool IsConnected { get; }
value = clientSbeSession.IsConnected
接続状況を取得します。
OutgoingQueueCount
public int OutgoingQueueCount { get; }
value = clientSbeSession.OutgoingQueueCount
発信メッセージキューの現在のサイズ(チャネルがカウントを割くない場合-1)。
RemoteEndPoint
public EndPoint RemoteEndPoint { get; }
value = clientSbeSession.RemoteEndPoint
接続されたクライアントのリモートエンドポイント。
Serializer
public SbeRecordSerializer Serializer { get; }
value = clientSbeSession.Serializer
セッションのSBEシリアライズ
ServerSession
public SbeSession ServerSession { get; }
value = clientSbeSession.ServerSession
サーバ側セッションの設定
TotalErrorCount
public int TotalErrorCount { get; set; }
value = clientSbeSession.TotalErrorCount
clientSbeSession.TotalErrorCount = value
エラーカウントの合計。
TransactionIdStorage
public ISessionTransactionIdStorage TransactionIdStorage { get; }
value = clientSbeSession.TransactionIdStorage
UpdatedTime
public DateTime UpdatedTime { get; }
value = clientSbeSession.UpdatedTime
受信したメッセージ(ハートビートまたはデータ)のタイムスタンプ。
WriteBuffer
public byte[] WriteBuffer { get; }
value = clientSbeSession.WriteBuffer
SBE のシリアライズのためのセッション書き込みバッファ。メッセージのアウトゴングは別々のタスクで同時処理されるため、各セッションは独自のバッファを必要とします。バッファは、要求に応じて成長します(Int32) 参照)。そのため、大きなフレームは落ちません。
メソッド
EnqueueWork
public bool EnqueueWork(ServerSubscription subscription, string requestId, Func<ClientSbeSession, string, CancellationToken, ValueTask<bool>> handler)
result = clientSbeSession.EnqueueWork(subscription, requestId, handler)
処理のためのシリアライズ作業項目を入力します。 キューがいっぱいであれば false を返します(クライアントのバックプレッシャー)。
EnsureWriteBuffer
public void EnsureWriteBuffer(int minSize)
clientSbeSession.EnsureWriteBuffer(minSize)
書き込みバッファが最小バイト、現在のバッファが小さいときに(倍数容量) を割り当てることを確認します。
- minSize
- バイト単位で最小限のバッファサイズ。
IncreaseBytesSent
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)
代表取締役社長 佐藤 浩一
- count
- 値。
IncreaseErrorCount
public override void IncreaseErrorCount()
clientSbeSession.IncreaseErrorCount()
代表取締役社長 佐藤 浩一
Init
public Task Init(SbeServerSettings serverSettings, Action<ClientSbeSession> logout, CancellationToken cancellationToken)
result = clientSbeSession.Init(serverSettings, logout, cancellationToken)
発信メッセージ処理ループを開始します。
ResetErrorCount
public override void ResetErrorCount()
clientSbeSession.ResetErrorCount()
代表取締役社長 佐藤 浩一
WriteFramedMessageAsync
public ValueTask WriteFramedMessageAsync(ReadOnlyMemory<byte> payload, CancellationToken cancellationToken)
result = clientSbeSession.WriteFramedMessageAsync(payload, cancellationToken)
SBE はクライアントストリームにメッセージをフレーム化しました。 [4 バイトの長さのプレフィックス (uint32 LE)][SBE メッセージのペイロード]