2013-10-07 87 views
0

我正在使用quickfix庫修復協議。發送消息後的quickfix事件

我寫的類是這樣的:

public class ApplicationImpl implements Application { 
... 
    @Override 
public void toApp(Message arg0, SessionID arg1) throws DoNotSend { 
    //this is invoked before sending message 
} 
... 
} 

我不知道如何調用發送消息後,一些方法?

回答

1

QuickFIX不提供消息後發送回調。

0

你需要有這樣的地方在你的代碼來發送消息(而不是在重寫的方法):

Session.sendToTarget(outgoingMessage, orderSession); 

,將執行一些內部quickfixJ代碼,然後調用toApp()toApp()方法允許您在發送給代理之前修改消息。但理想情況下,爲了在發送完成後執行某些操作,只需在Session.sendToTarget()之後添加代碼即可。

+0

是的,我知道如何發送消息,但我正在尋找在發送消息到服務器後提供回調的類。 Session.sendToTarget()之後的代碼可以在實際發送消息之前執行。 – Nyger

+0

我不這麼認爲,很確定sendToTarget不會調用一個新的線程。但是,在這一點上又有什麼不同呢? – robthewolf

+0

在方法toAdmin我攔截髮送Heartbit,然後我發送一些消息。不幸的是,在日誌中(由ScreenLogFactory提供),我的消息出現在Heartbit之前。 – Nyger

0

如果你喜歡冒險,可以修改QuickFIX/J來做到這一點。 MINA網絡層確實提供了messageSent回調。如果您在QFJ的InitiatorIoHandler(或AcceptorIoHandler)中重寫該方法,則可以直接處理messageSent事件或將其傳播到已修改的應用程序接口。