OpenClient

StockSharp.cTrader.Native

继承自: Disposable

构造函数

OpenClient
public OpenClient(string host, uint port)
openClient = OpenClient(host, port)

创建尚未连接的 OpenClient 实例

host
API 端点的主机名
port
主机端口号码

属性

Host
public string Host { get; }
value = openClient.Host

当前客户端连接到的 API 端点主机

IsCompleted
public bool IsCompleted { get; private set; }
value = openClient.IsCompleted
openClient.IsCompleted = value

如果客户端流没有出错完成, 则会返回 True, 否则会是 False

IsTerminated
public bool IsTerminated { get; private set; }
value = openClient.IsTerminated
openClient.IsTerminated = value

如果客户端流有任何错误( 例外) , 则此数据会返回 True, 否则是 False

Port
public uint Port { get; }
value = openClient.Port

当前客户端连接的 API 主机端口

方法

Connect
public Task Connect(CancellationToken cancellationToken)
result = openClient.Connect(cancellationToken)

以您指定的方法连接到 API

返回值: 任务

ConnectTcp
private Task ConnectTcp(CancellationToken cancellationToken)
result = openClient.ConnectTcp(cancellationToken)

通过使用 TCP 客户端连接到 API

返回值: 任务

DisposeManaged
protected override void DisposeManaged()
openClient.DisposeManaged()

处理客户端, 释放所有使用的资源, 并停止所有运行中的操作

GetLength
private static int GetLength(byte[] lengthBytes)
result = OpenClient.GetLength(lengthBytes)

返回已收信件的长度而不导致额外分配

lengthBytes
已收到长度数据的字节数组

返回值: 单位

OnCompleted
private void OnCompleted()
openClient.OnCompleted()

使用 OnCompleted 方法完成每个观察者的工作

OnError
private void OnError(Exception exception)
openClient.OnError(exception)

处理客户端, 然后在排除例外后给每个观察者OnError打电话

exception
例外
ReadTcp
private Task ReadTcp(CancellationToken cancellationToken)
result = openClient.ReadTcp(cancellationToken)

这种方法将读取来函的 TCP 流

cancellationToken
用于% ReadAsync++ 呼叫的取消符

返回值: 任务

SendMessage
public Task SendMessage(ProtoMessage message, CancellationToken cancellationToken)
result = openClient.SendMessage(message, cancellationToken)

这种方法会将您的消息插入到信件队列中, 它不会立即发送信件

message
消息
cancellationToken

返回值: 任务

SendMessage``1
public Task SendMessage<T>(T message, ProtoOAPayloadType payloadType, string clientMsgId, CancellationToken cancellationToken)
result = openClient.SendMessage(message, payloadType, clientMsgId, cancellationToken)

这种方法会将您的消息插入到信件队列中, 它不会立即发送信件

message
消息
payloadType
信件有效载荷类型(ProtoOAPayloadType)
clientMsgId
客户端消息ID( 可选的)
cancellationToken

返回值: 任务

SendMessage``1
public Task SendMessage<T>(T message, string clientMsgId, CancellationToken cancellationToken)
result = openClient.SendMessage(message, clientMsgId, cancellationToken)

这种方法会将您的消息插入到信件队列中, 它不会立即发送消息 通过使用这种超载的 SendMessage 方法,你避免传递消息的有效载荷类型, 它从消息本身得到有效载荷

message
消息
clientMsgId
客户端消息ID( 可选的)
cancellationToken

返回值: 任务

SendMessage``1
public Task SendMessage<T>(T message, ProtoPayloadType payloadType, string clientMsgId, CancellationToken cancellationToken)
result = openClient.SendMessage(message, payloadType, clientMsgId, cancellationToken)

这种方法会将您的消息插入到信件队列中, 它不会立即发送信件

message
消息
payloadType
信件有效载荷类型(ProtoPayloadType)
clientMsgId
客户端消息ID( 可选的)
cancellationToken

返回值: 任务

ThrowObjectDisposedExceptionIfDisposed
private void ThrowObjectDisposedExceptionIfDisposed()
openClient.ThrowObjectDisposedExceptionIfDisposed()

如果客户端被处理, 丢出% ObjectDisposedException%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

WriteTcp
private Task WriteTcp(byte[] messageByte, CancellationToken cancellationToken)
result = openClient.WriteTcp(messageByte, cancellationToken)

将消息字节写入 TCP 流

messageByte
cancellationToken
调用流法时使用的取消符

返回值: 任务

事件

MessageReceived
public event Action<ProtoMessage> MessageReceived
openClient.MessageReceived += handler

当收到API的邮件时, 将会触发此事件