使用TD Ameritrade API 页面,我的 C# 应用程序成功登录并订阅,以使用小字段列表获取多个符号的数据流。
现在,我添加了第二个订阅,其中包含可能包含一些相同符号的不同字段列表。
我解析数据响应,将更新发送到我的应用程序中的适当位置。美好的。
现在要取消订阅其中一个数据请求,我正在尝试这个。例如,如果第一次询问“SMCI,INFN,TSM”,第二次询问“AMD,SMCI,INFN”,我将取消订阅第二个列表:
TDRequestQuote quoteRequest = new TDRequestQuote
{
service = "QUOTE",
command = "UNSUBS",
requestid = pID.ToString(),
account = _TDUser.accounts[0].accountId,
source = _TDUser.streamerInfo.appId,
parameters = new TDRequestQuoteParameters
{
keys = sSymbolList
}
};
string sEndRequestQuote = JsonConvert.SerializeObject(quoteRequest, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
_WebSocket.Send(sEndRequestQuote); //A WebSocketSharp.WebSocket
两次心跳通知后,我收到以下消息:
{"notify":[{"service":"ADMIN","timestamp":1628966081898,"content":{"code":30,"msg":"Stop streaming due to empty subscription"}}]}
然后整个网络套接字关闭。
但是符号“TSM”应该是激活的!
API 没有显示使用命令“UNSUBS”的示例。
您如何成功取消订阅一个数据请求并保持其他数据请求处于活动状态?