ClientSbeSession

StockSharp.Server.Sbe

SBE客户端会话——每个连接客户端一个.

继承自: 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

获取连接状态 。

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

是否是演示会话 。

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

客户语言代码.

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

当前发送信件队列的大小( 如果频道不显示一个计数) 。

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

上次收到消息的时间戳(心跳或数据).

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

客户端应用程序版本.

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

用于 SBE 序列化的每会话写缓冲器。 每个会话都需要自己的缓冲器, 因为发送的信件会同时在单独的任务中处理。 缓冲器会随需求而增长( 见 Int32) , 所以大帧不会被丢弃 。

方法

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

释放资源。

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

设置一个序列化工作项目进行处理。 如果队列满了, 返回错误( 客户后压) 。

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

确保写入缓冲器至少可以持有字节,当当前缓冲器太小时再分配(双倍容量).

minSize
最小的缓冲大小以字节表示 。
IncreaseBytesSent
public override void IncreaseBytesSent(int count)
clientSbeSession.IncreaseBytesSent(count)

Increase BytesSent.

count
价值.
IncreaseErrorCount
public override void IncreaseErrorCount()
clientSbeSession.IncreaseErrorCount()

Increase ErrorCount.

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

启动发送信件处理循环 。

Ping
public void Ping()
clientSbeSession.Ping()

更新最后一个活动时间戳。

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

Reset ErrorCount.

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

将 SBE 框架消息写入客户端流. [4-字节长度前缀 (int32 LE) [SBE 消息有效载荷]