2

我有两个具有相同 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

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

4

1 回答 1

1

我不确定 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);
于 2018-04-02T20:17:52.927 回答