在我的Quickfix / J应用程序实现中递归调用toApp

时间:2013-07-03 16:14:18

标签: quickfix fix-protocol

我在Quickfix / J Application实现中做了类似的事情:

public void toApp(Message message, SessionID sessionID) throws DoNotSend {
    try {
        Session.sendToTarget(message, sessionID);
    } catch (SessionNotFound e) {
        e.printStackTrace();
    }
}

但是Session.Java中的代码本身调用了application.toApp(message,sessionID); 在方法

 private boolean sendRaw(Message message, int num) {

发送邮件的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

toApp方法是一个回调函数,只要将消息发送给交易对手,就会调用该函数。看看你的代码,我觉得你的逻辑本身是递归的。 SendToTarget调用toApp和toApp调用sendToTarget。发送消息的一种简单方法是使用具体的会话对象,比如mySession。然后你可以做mySession.send(消息)。

答案 1 :(得分:3)

如果您尝试发送消息以响应收到的消息,则需要在fromApp回调方法中执行此操作。

toApp回调用于传出消息。如果要对传出消息进行一些额外的验证或风险管理,这可能很有用。如果您不想发送消息,则抛出DoNotSend异常。