3

session.logout有人能帮我理解和之间的区别吗session.generateLogout

也可以显式地创建和发送注销消息。这和其他两个有什么区别?

4

2 回答 2

2

注销方法是要走的路。它将更改启用标志,该标志将触发public void next()计时器调用的方法。这将使用该generateLogout()方法发送正确的 FixMessage(35=5)。generateLogout 方法都是私有的,除了没有参数的方法,它无缘无故地通过变更集更改为公共,所以我猜这发生了意外,因为它只是创建消息的辅助方法。它与您调用的登录相同,public void logon()它会更改状态并触发public void next()哪些调用private void generateLogon()

会话.java

于 2015-06-01T19:02:22.370 回答
1

首先,通过查看 QuickFIX/J 的Javadoc,有人可能会认为它缺少您选择的方法所需的信息。

我对您的建议是查看该项目的源代码并比较方法(开源软件的好处之一)。

一目了然,请参阅下面的方法之间的差异,

logout()方法只调用setEnabled(false)

generateLogout(Message otherLogout, String text, SessionStatus sessionStatus)

调用所有不同种类的东西。例如,它准备注销消息、设置会话状态等。

总之,该generateLogout()方法似乎是一种更合适的注销方式。

于 2015-06-01T18:39:48.643 回答