两个 FIX 消息一起发送是否有效?

Is it valid that two FIX messages are sent together in one go?

我的 QuickFIX 客户端抱怨主体长度不符合预期。

检查后发现,它收到的消息实际上包含2条消息(2个不同的MsgTypes <35>)。此外,2 BeginStrings <8>

这是一条有效的消息吗?

QuickFIX报错,不是我自己的代码。 因此,尽管我找不到任何官方文档,但对我来说这似乎是一条无效消息,说这是不允许的。

我希望只要第一条消息的正文长度正确,QuickFIX 就可以解析这些消息。

您可以使用以下方法检查正文长度是否正确:

counting the number of characters in the message following the BodyLength (9) field up to, and including, the delimiter immediately preceding the CheckSum (10) field. ALWAYS SECOND FIELD IN MESSAGE. (Always unencrypted) For example, for message 8=FIX 4.4^9=5^35=0^10=10^, the BodyLength is 5 for 35=0^

来源:https://btobits.com/fixopaedia/fixdic44/index.html?tag_9_BodyLength.html

是否支持一次性多条消息完全取决于你的修复引擎。 使用 BodyLength[9] 和 CheckSum[10] 字段。 BodyLength 是从 BodyLenght 之后的字段开始计算的,并且 在 CheckSum 字段之前。 CheckSum 是从 ‘8= 到校验和字段之前的 SOH 计算的。 计算每个字符的二进制值,并将计算值的 LSB 与校验和值进行比较。 如果校验和计算为 274,则模 256 值为 18 (256 + 18 = 274)。该值将被传输为 10=018,其中 "10="是校验和字段的标记。