如何解决一次发送两个FIX消息是否有效?
我的QuickFIX客户端抱怨主体长度不正确。
检查后,发现它接收到一条消息,该消息实际上包含2条消息(2个不同的MsgTypes )。另外,还有2个BeginStrings
这是一条有效的消息吗?
该错误是由QuickFIX报告的,而不是我自己的代码。 因此,尽管我找不到任何正式文档,但对我来说,这似乎是一条无效消息,说不允许这样做。
解决方法
我希望只要第一条消息的正文长度正确,QuickFIX就可以解析消息。
您可以使用以下方法检查车身长度是否正确:
计算在BodyLength(9)字段之后直到并包括CheckSum(10)字段之前的定界符的消息中的字符数。消息中始终是第二字段。 (始终未加密)例如,对于消息8 = FIX 4.4 ^ 9 = 5 ^ 35 = 0 ^ 10 = 10 ^,对于35 = 0 ^,BodyLength为5
来源:https://btobits.com/fixopaedia/fixdic44/index.html?tag_9_BodyLength.html
,是否一次支持多条消息完全取决于您的修复引擎。 使用 BodyLength[9] 和 CheckSum[10] 字段。 BodyLength 是从 BodyLenght 之后的字段开始计算的,并且 在 CheckSum 字段之前。 CheckSum 是从'8= up to SOH 在校验和字段之前计算出来的。 计算每个字符的二进制值并将计算值的 LSB 与校验和值进行比较。 如果计算出的校验和为 274,那么模 256 的值为 18 (256 + 18 = 274)。该值将被传输为 10=018,其中 "10="是校验和字段的标签。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。