Чтобы воспроизвести мои ошибки, вам может потребоваться выполните следующую команду, чтобы собрать и настроить FIX8 так, как я его настроил.
Код: Выделить всё
CXXFLAGS="-std=c++17 -stdlib=libc++" LDFLAGS="-stdlib=libc++ -lPocoNetSSL" ./bootstrap --with-poco=/usr/local --enable-ssl
&& CXXFLAGS="-std=c++17 -stdlib=libc++" LDFLAGS="-stdlib=libc++ -lPocoNetSSL" ./configure --with-poco=/usr/local --enable-ssl --enable-debug
&& make
&& make install
Фрагмент кода для входа в систему:
Код: Выделить всё
Message *CoinbaseSession::generate_logon(const unsigned heartbtint, const FIX8::f8String davi) {
TEX::Logon *nos(new TEX::Logon(false));
*nos encode(&ptr);
return nos;
}
//-----------------------------------------------------------------------------------------
bool CoinbaseRouter::operator() (const TEX::Logon *msg) const
{
cout logon_sent
logon_sent => session_terminated
session_terminated => not_logged_in
not_logged_in => logon_sent
logon_sent => session_terminated
Код: Выделить всё
char output[FIX8_MAX_MSG_LENGTH + HEADER_CALC_OFFSET], *ptr(output);
nos->encode(&ptr);
Я знаю, что это не связано с неверным паролем/неверной подписью, поскольку я сделал то же самое с быстрым исправлением Python, и Coinbase фактически отправляет Обратно сообщение о выходе из системы.
Я также подозреваю, что основная проблема на самом деле не может быть полностью связана с тем, как я создаю сообщение о входе в систему, поскольку существуют проблемы с одноранговым соединением, поэтому я дополнительно предоставляю сеанс /Журналы протокола, а также мои файл client.xml. Возможно, я что-то неправильно настраиваю?
Журнал сеанса:
Код: Выделить всё
0000001 2024-11-13 18:13:22.450969000 A session.cpp:178 Info Starting session
0000002 2024-11-13 18:13:22.451015000 A connection.cpp:350 Info Trying to connect to: 44.196.185.199:6121 (1) secured
0000003 2024-11-13 18:13:22.670957000 A connection.cpp:358 Info Connection successful
0000004 2024-11-13 18:13:22.670994000 A session.cpp:185 Info Session connected
0000005 2024-11-13 18:13:22.671065000 A session.cpp:1052 Debug send_process: _next_send_seq = 1
0000006 2024-11-13 18:13:22.671106000 A session.cpp:1066 Debug Sending:header ("header")
BeginString (8): FIXT.1.1
BodyLength (9): 0
MsgType (35):
SenderCompID (49): API_KEY_REDACTED
TargetCompID (56): Coinbase
MsgSeqNum (34): 1
SendingTime (52): 20241114-02:13:22.671
Logon ("A")
EncryptMethod (98): 0
HeartBtInt (108): 10
RawDataLength (95): 5
RawData (96): weras
Username (553): API_KEY_REDACTED
Password (554): API_PASSWORD_REDACTED
DefaultApplVerID (1137): 9
trailer ("trailer")
CheckSum (10):
0000007 2024-11-13 18:13:32.697968000 B connection.cpp:140 Error Peer reset connection: sockRead: connection gone
0000008 2024-11-13 18:13:32.698165000 B connection.cpp:148 Info FIXReader: 0 messages processed, 0 dropped, 1 invalid
0000009 2024-11-13 18:13:32.698199000 A connection.cpp:324 Debug Connection::stop()
0000010 2024-11-13 18:13:32.698205000 A connection.cpp:328 Debug Connection::stop() => _reader.stop()
0000011 2024-11-13 18:13:32.950459000 A connection.cpp:324 Debug Connection::stop()
0000012 2024-11-13 18:13:32.950474000 A connection.cpp:328 Debug Connection::stop() => _reader.stop()
0000013 2024-11-13 18:13:33.255797000 A session.cpp:178 Info Starting session
0000014 2024-11-13 18:13:33.255807000 A connection.cpp:350 Info Trying to connect to: 44.196.185.199:6121 (1) secured
0000015 2024-11-13 18:13:33.486268000 A connection.cpp:358 Info Connection successful
0000016 2024-11-13 18:13:33.486301000 A session.cpp:185 Info Session connected
0000017 2024-11-13 18:13:33.486324000 A session.cpp:1138 Info Last sent: 528, last received: 256
0000018 2024-11-13 18:13:33.486349000 A session.cpp:1052 Debug send_process: _next_send_seq = 528
0000019 2024-11-13 18:13:33.486375000 A session.cpp:1066 Debug Sending:header ("header")
BeginString (8): FIXT.1.1
BodyLength (9): 0
MsgType (35):
SenderCompID (49): API_KEY_REDACTED
TargetCompID (56): Coinbase
MsgSeqNum (34): 528
SendingTime (52): 20241114-02:13:33.486
Logon ("A")
EncryptMethod (98): 0
HeartBtInt (108): 10
RawDataLength (95): 5
RawData (96): weras
Username (553): API_KEY_REDACTED
Password (554): API_PASSWORD_REDACTED
DefaultApplVerID (1137): 9
trailer ("trailer")
CheckSum (10):
0000020 2024-11-13 18:13:43.512340000 B connection.cpp:140 Error Peer reset connection: sockRead: connection gone
0000021 2024-11-13 18:13:43.512428000 B connection.cpp:148 Info FIXReader: 0 messages processed, 0 dropped, 1 invalid
0000022 2024-11-13 18:13:43.512463000 A connection.cpp:324 Debug Connection::stop()
0000023 2024-11-13 18:13:43.512469000 A connection.cpp:328 Debug Connection::stop() => _reader.stop()
0000024 2024-11-13 18:13:43.763224000 A connection.cpp:324 Debug Connection::stop()
0000025 2024-11-13 18:13:43.763232000 A connection.cpp:328 Debug Connection::stop() => _reader.stop()
Код: Выделить всё
out 0000001 A 8=FIXT.1.19=16935=A49=0931cda76168d873ad5cc0954753dfbf56=Coinbase34=152=20241114-02:13:22.67198=0108=1095=596=weras553=0931cda76168d873ad5cc0954753dfbf554=87algdxhqte1137=910=012
out 0000002 A 8=FIXT.1.19=17135=A49=0931cda76168d873ad5cc0954753dfbf56=Coinbase34=52852=20241114-02:13:33.48698=0108=1095=596=weras553=0931cda76168d873ad5cc0954753dfbf554=87algdxhqte1137=910=121
out 0000003 A 8=FIXT.1.19=17135=A49=0931cda76168d873ad5cc0954753dfbf56=Coinbase34=52852=20241114-02:13:44.30398=0108=1095=596=weras553=0931cda76168d873ad5cc0954753dfbf554=87algdxhqte1137=910=111
out 0000004 A 8=FIXT.1.19=17135=A49=0931cda76168d873ad5cc0954753dfbf56=Coinbase34=52852=20241114-02:13:55.20398=0108=1095=596=weras553=0931cda76168d873ad5cc0954753dfbf554=87algdxhqte1137=910=112
out 0000005 A 8=FIXT.1.19=17135=A49=0931cda76168d873ad5cc0954753dfbf56=Coinbase34=52852=20241114-02:14:06.06198=0108=1095=596=weras553=0931cda76168d873ad5cc0954753dfbf554=87algdxhqte1137=910=111
out 0000006 A 8=FIXT.1.19=17135=A49=0931cda76168d873ad5cc0954753dfbf56=Coinbase34=52852=20241114-02:14:16.84998=0108=1095=596=weras553=0931cda76168d873ad5cc0954753dfbf554=87algdxhqte1137=910=126
Код: Выделить всё
type="mem"/>
Я также пробовал отправить нежелательный запрос на вход в Python с помощью быстрого исправления, и всегда получаю ответ, поэтому знаю, что проблема не в связано со мной, отправляющим ненужные значения Coinbase.
Кроме того, в примерах, которые я запускал, я заметил, что мне не нужно вручную писать код для заполнения BodyLength, Checksum и MsgType, поскольку приложение позаботилось об этом. этого для меня. Так что мне даже не придется использовать «исправление», которое я предложил вверху.
Подробнее здесь: https://stackoverflow.com/questions/791 ... via-fix8-c
Мобильная версия