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
出错数.
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
上次收到消息的时间戳(心跳或数据).
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)
设置一个序列化工作项目进行处理。 如果队列满了, 返回错误( 客户后压) 。
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)
启动发送信件处理循环 。
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 消息有效载荷]