在golang中,有哪些方法可以将字符串解析为quickfixgo消息?

问题描述 投票:0回答:1

我在 Apache Kafka 中的字符串主题中缓冲修复消息,稍后需要将这些消息发送到另一个修复服务器以将其发送到客户端。

我可以轻松地在quickfix/n中完成它,但是我需要使用quickfix/go并将其托管在Kubernetes上。

quickfixgo
1个回答
0
投票

我发现这段代码有效,但您需要确保字符串中的分隔符正确(SOH)

fixMessage := "8=FIXT.1.19=13035=D34=24949=BANZAI52=20241022-15:35:59.02956=EXEC11=17296113590121=138=43240=154=155=SPY59=060=20241022-15:35:59.02710=154"

// Load the Transport DataDictionary from a file
transportDictFile, err := os.Open("FIXT11.xml")
if err != nil {
    log.Fatalf("Failed to open FIXT11 data dictionary file: %v", err)
}
defer transportDictFile.Close()

transportDataDictionary, err := datadictionary.ParseSrc(transportDictFile)
if err != nil {
    log.Fatalf("Failed to load transport data dictionary: %v", err)
}

// Load the Application DataDictionary from a file
dictFile, err := os.Open("FIX50SP2.xml")
if err != nil {
    log.Fatalf("Failed to open FIX50SP2 data dictionary file: %v", err)
}
defer dictFile.Close()

dataDictionary, err := datadictionary.ParseSrc(dictFile)
if err != nil {
    log.Fatalf("Failed to load application data dictionary: %v", err)
}

log.Println("Loaded data dictionaries successfully")

rawMsg := bytes.NewBufferString(fixMessage)
msg := quickfix.NewMessage()
err = quickfix.ParseMessageWithDataDictionary(msg, rawMsg, transportDataDictionary, dataDictionary)
if err != nil {
    log.Fatalf("Failed to parse FIX message: %v", err)
}

log.Println("Parsed FIX message successfully")
© www.soinside.com 2019 - 2024. All rights reserved.