C# Quickfixn Fix 4.2如何发送&;在同一会话中接收到不同TargetCompID的消息

C# Quickfixn Fix 4.2如何发送&;在同一会话中接收到不同TargetCompID的消息,c#,quickfix,fix-protocol,quickfixn,C#,Quickfix,Fix Protocol,Quickfixn,如何在同一会话中向不同的TargetCompID发送和接收修复消息 public void ToAdmin(Message message, SessionID sessionID) { if ( (message.ToString().IndexOf("35=D") > 0) || (message.ToString().IndexOf("35=G") > 0) || (message.ToString().IndexOf("35=F") > 0)) {

如何在同一会话中向不同的TargetCompID发送和接收修复消息

public void ToAdmin(Message message, SessionID sessionID)
{
if ( (message.ToString().IndexOf("35=D") > 0) || (message.ToString().IndexOf("35=G") > 0) || (message.ToString().IndexOf("35=F") > 0))
{            message.Header.SetField(new TargetCompID("1"));
}
}
9:56:38 ToApp: 8=固定。4.2�9=261�35=D�34=63�49=555�50=BBBBBB�52=20180918-06:56:38�56=0�128=1�129=AAAA�1=555-----126�11=1�21=1�22=4�38=2500�40=2�44=0.03�47=C�48=JO3109211016�54=2�55=JO3109211016�58=测试 修理 康奈克�59=1�60=20180918-09:56:38.579�109=126�110=50�111=100�9596=2�9947=55500350�10=140� 9:56:38交换: 8=固定。4.2�9=115�35=3�34=73�49=0�50=AAAA�52=20180918-09:56:38�56=555�45=63�58=不能 处理顺序:TargetCompID无效�372=D�10=067�


TargetCompID是会话标识符的一部分,请参阅:

在QuickFix/N中,修复会话被定义为BeginString(修复版本号)、SenderCompID(您的ID)和TargetCompID(您的交易对手的ID)的唯一组合

因此,在同一会话中尝试向不同的
TargetCompID
发送消息似乎是不正确的;您需要为每个
TargetCompID
创建单独的会话


最简单的方法是在配置文件中定义会话(参见上面的链接);或者,您可以动态创建它们-请参见TargetCompID是会话标识符的一部分,请参见:

在QuickFix/N中,修复会话被定义为BeginString(修复版本号)、SenderCompID(您的ID)和TargetCompID(您的交易对手的ID)的唯一组合

因此,在同一会话中尝试向不同的
TargetCompID
发送消息似乎是不正确的;您需要为每个
TargetCompID
创建单独的会话


最简单的方法是在配置文件中定义会话(参见上面的链接);或者,您可以动态创建它们-请参见

您最好使用配置文件来操作标题和尾部部分,而不是在代码中进行操作。在FIX protocol中这样做听起来很奇怪。。。但是,您永远不知道特定的接受者可能希望您实现什么…您最好使用配置文件来操作头和尾部分,而不是在代码中进行操作。听起来在修复协议中这样做很奇怪。。。但你永远不知道某个特定的接受者希望你达到什么目标。。。