注销时未触发 Quickfixn OnLogout
Quickfixn OnLogout not triggered when logging out
我在 quickfixn github 页面上的示例 Tradeclient 上编写了一个交易应用程序。现在已对其进行了大量修改,但关于登录和注销的内容并未更改。我现在遇到的问题是,当按下注销按钮时,它会调用 Initiator.Stop,但它不会像预期的那样进入 OnLogout。登录时一切正常,initiator.start 然后是 OnCreate,然后是 OnLogon,但是在注销时,不会触发 OnLogout。任何想法可能是什么问题?
private void Disconnect(object ignored)
{
Trace.WriteLine("ConnectionViewModel::Disconnect called");
_qfapp.Stop();
}
public void Stop()
{
Trace.WriteLine("QFApp::Stop() called");
Initiator.Stop(true);
}
public void OnLogout(QuickFix.SessionID sessionID)
{
// not sure how ActiveSessionID could ever be null, but it happened.
string a = (this.ActiveSessionID == null) ? "null" : this.ActiveSessionID.ToString();
Trace.WriteLine(String.Format("==OnLogout: {0}==", a));
if (LogoutEvent != null)
{
LogoutEvent();
}
}
与 DumbCoder here 的答案相同。 Initiator.Stop(true);
停止启动器引擎,因此所有会话都断开连接。这意味着没有更多的会话可以注销。
根据 this answer 你想首先使用
注销会话
Session.lookupSession(sessionID).logout();
但是,根据格兰特在那里的评论,这是一件不寻常的事情。我的猜测是 onLogout() 功能实际上是在客户端会话从接受器注销时捕获,但接受器本身保持 运行。这不是真正的发起方。
我在 quickfixn github 页面上的示例 Tradeclient 上编写了一个交易应用程序。现在已对其进行了大量修改,但关于登录和注销的内容并未更改。我现在遇到的问题是,当按下注销按钮时,它会调用 Initiator.Stop,但它不会像预期的那样进入 OnLogout。登录时一切正常,initiator.start 然后是 OnCreate,然后是 OnLogon,但是在注销时,不会触发 OnLogout。任何想法可能是什么问题?
private void Disconnect(object ignored)
{
Trace.WriteLine("ConnectionViewModel::Disconnect called");
_qfapp.Stop();
}
public void Stop()
{
Trace.WriteLine("QFApp::Stop() called");
Initiator.Stop(true);
}
public void OnLogout(QuickFix.SessionID sessionID)
{
// not sure how ActiveSessionID could ever be null, but it happened.
string a = (this.ActiveSessionID == null) ? "null" : this.ActiveSessionID.ToString();
Trace.WriteLine(String.Format("==OnLogout: {0}==", a));
if (LogoutEvent != null)
{
LogoutEvent();
}
}
与 DumbCoder here 的答案相同。 Initiator.Stop(true);
停止启动器引擎,因此所有会话都断开连接。这意味着没有更多的会话可以注销。
根据 this answer 你想首先使用
注销会话Session.lookupSession(sessionID).logout();
但是,根据格兰特在那里的评论,这是一件不寻常的事情。我的猜测是 onLogout() 功能实际上是在客户端会话从接受器注销时捕获,但接受器本身保持 运行。这不是真正的发起方。