首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注销时未触发Quickfixn OnLogout

注销时未触发Quickfixn OnLogout
EN

Stack Overflow用户
提问于 2017-01-23 18:08:41
回答 1查看 566关注 0票数 1

我在quickfixn github页面上的example Tradeclient上写了一个交易应用程序。它现在进行了很大的修改,但是关于登录和注销,它并没有改变。我现在有一个问题,当按下注销按钮时,它会调用Initiator.Stop,但它不会像它应该做的那样进入OnLogout。登录时一切正常,依次是initiator.start、OnCreate和OnLogon,但当注销时,OnLogout不会被触发。你知道问题出在哪里吗?

代码语言:javascript
复制
    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();
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 01:54:16

这与DumbCoder here的答案相同。Initiator.Stop(true);会停止启动器引擎,以便断开所有会话。这意味着不再有要注销的会话。

对于每个this answer,您首先要使用以下命令注销会话

代码语言:javascript
复制
Session.lookupSession(sessionID).logout();

然而,根据Grant的评论,这是一件不寻常的事情。我的猜测是,onLogout()功能实际上是在客户端会话从接受器注销时捕获,但接受器本身保持运行。这并不是真正针对发起方的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41803733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档