Свободно переслать с пакетом сообщений - PullRequest
0 голосов
/ 02 ноября 2018

Я использую https://godoc.org/github.com/vmihailenco/msgpack (что официально рекомендовано messagepack.org для golang) То, что я пытаюсь сделать, это отправить данные журнала в свободном «прямом» протоколе.

Я использую приведенную выше библиотеку для маршалинга в msgp. Когда я отменяю, я вижу правильный (прямой) формат. Но беглый экспедитор говорит -

[debug] [in_fw] Парсер: ожидание массива (тип = 8), пропустить.

Ниже приведены данные без разбора -

["my.containerlog", [[1441588984, {"LogEntry": "ce5632054b603019bd39b7e42b64a617 - u003eHello: 84424454 @Thu, 01 ноября 2018 21:50:16 GMT \ n", "LogEntrySource": "stder" "LogEntryTimeStamp": "2018-11-01T21: 50: 16.109831526Z", "Id": "e0a74c2b98d2fe3db0e3d37b135e475b9596258d8f08a361c531ee5fdcad210b", "Image": "visert / привет: err100eps", "Имя": "d1116cbf-d649-11e8-8a20- 4a33f2066f5b / visertcontainerhelloapp-1" , "SourceSystem": "Контейнеры", "Компьютер": "АКС-agentpool-12720733-0"}]]]

Я использую Bytearray, который я маршал для MSGP.

var payLoad []byte

payLoad = append(payLoad, ([]byte (fmt.Sprintf("[\"%s\",[", "my.containerlog")))...)

//getting data and populating dataItem
dataItem := DataItem{
            ID:                stringMap["Id"],
            LogEntry:          stringMap["LogEntry"],
            LogEntrySource:    stringMap["LogEntrySource"],
            LogEntryTimeStamp: stringMap["LogEntryTimeStamp"],
            SourceSystem:      stringMap["SourceSystem"],
            Computer:          Computer,
            Image:             stringMap["Image"],
            Name:              stringMap["Name"],
        }

m, err := json.Marshal(dataItem) //convert data to json
payLoad = append(payLoad, ([]byte (fmt.Sprintf("[%d,%s]", 1441588984, m)))...)
payLoad = append(payLoad,([]byte (fmt.Sprintf("]]")))...)

b, err := msgpack.Marshal(payLoad)

//when i unmarshal i get the correct forward payload

var f []byte
e := msgpack.Unmarshal(b, &f)

Что может быть не так? Я не должен маршалировать байт []?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...