如何使用SessionQualifier击败其他相同的QuickFix会话



我有两个带有相同sessionID的修复会话(由于服务器端指定了senderCompid和targetCompid的值,因此无法更改。我了解到我可以在配置文件中使用sessionqualifier来消除两个会话。

#config for session 1
SenderCompID=Sender
TargetCompID=Target
SessionQualifier=FirstSession
......
#config for session 2
SenderCompID=Sender
TargetCompID=Target
SessionQualifier=SecondSession
......

现在,当我要通过特定会话发送消息时

QuickFix.Session.SendToTarget(msg, sessionID);
//where sessionID = "FIX.4.4:Sender->Target" which is identical for both sessions

我该怎么做才能告诉计算机将其发送通过哪个会话?

我不确定quickfixn,但是quickfixj有几个sessionID构造函数,包括:

public SessionID(String beginString, String senderCompID, String targetCompID, String qualifier)

因此,如果您想将消息发送到会话之一,则需要使用:

构建sessionID
SessionID session1 = new SessionID("FIX.4.4", "Sender", "Target", "FirstSession");
QuickFix.Session.SendToTarget(msg, session1);
SessionID session2 = new SessionID("FIX.4.4", "Sender", "Target", "SecondSession")
QuickFix.Session.SendToTarget(msg, session2);

最新更新