FIX разделитель сообщений

Я относительно новичок в FIX-протоколе.

Разделитель для сообщения FIX-Protocol иногда показывает ^ и другие времена |. Википедия по FIX-протоколу говорит [SOH] ( < Начало заголовка > для шестнадцатеричного 0x01) является символом.

Пожалуйста, объясните значение того же самого.

Например, сообщение протокола FIX может быть визуально представлено как

8=FIX.4.4^9=122^35=D^34=215^49=CLIENT12^52=20100225-19:41:57.316^56=B^1=Marcel^11=13346^21=1^40=2^44=5^54=1^59=0^60=20100225-19:39:52.020^10=072^

или же

8=FIX.4.4|9=122|35=D|34=215|49=CLIENT12|52=20100225-19:41:57.316|56=B|1=Marcel|11=13346|21=1|40=2|44=5|54=1|59=0|60=20100225-19:39:52.020|10=072|

Так в чем же разница при использовании ^ над |

Существуют ли и другие разделители? Не понятно почему [SOH] (0x01) подходит для ^ или |

Это могло быть цифрой ОДИН.

2 ответа

Разделитель SOH = ASCII code 01 является непечатным символом. Глядя на двоичное представление сообщения (например, в виде шестнадцатеричного редактора), вы увидите символ как 0x01. Для отображения сообщений, кажется, что некоторые люди используют | и другое использование ^ которые редко используются символы и, следовательно, хороший разделитель.

С использованием | характер только для визуального удобства, легче читать, чем ^A

cat your.file.fix | tr '\01' '|' | less

Вы можете легко преобразовать вышеупомянутую команду как собственный сценарий оболочки для открытия файлов сессий FIX

~/.bashrc

function fixlog {
  cat $* | tr '\01' '|' | less
}

Сообщения FIX всегда имеют 0x01 между полями в сообщении, будь то по проводам, в OMS/EMS или в файле журнала. Подстановка выполняется только в том случае, если необходимо отобразить сообщение (ОК, некоторые люди могут сделать свои файлы журнала чистыми и, таким образом, записать символ). Никогда не бывает, чтобы в действительном сообщении FIX имелись каналы или каретки, разделяющие поля. Это также тот случай, когда сообщение FIX никогда не будет где-либо, кроме полей. (это символ, который не должен появляться в печатном тексте - сообщения FIX должны быть читаемыми - и он не будет конфликтовать с тем, что завершает строку C, поэтому все сообщение можно рассматривать как строку, если вы склонны.)

Другие вопросы по тегам