Python C++;修复实现-->;会话的用户无效。用户名和SenderCompId必须匹配 我在C++中用QuiFixt开发了一个BOT,当我发送登录消息时,我得到一个注销响应,说“强”> session的无效用户。用户名和SeordDeCube必须匹配“< /强> ”

Python C++;修复实现-->;会话的用户无效。用户名和SenderCompId必须匹配 我在C++中用QuiFixt开发了一个BOT,当我发送登录消息时,我得到一个注销响应,说“强”> session的无效用户。用户名和SeordDeCube必须匹配“< /强> ”,python,c++,authentication,quickfix,fix-protocol,Python,C++,Authentication,Quickfix,Fix Protocol,这是我的信息: 8=FIXT.1.1|9=113|35=A|34=1|49=REM4820|52=20201008-22:22:59.886|56=ROFX|553=User|554=pass|98=0|108=30|141=Y|1137=9|10=054| (出于隐私原因更改了用户和通行证) 以下是回应: 8=FIXT.1.1|9=135|35=5|34=1|49=ROFX|52=20201008-22:33:00.356|56=REM4820|1128=9|58=Invalid user

这是我的信息:

8=FIXT.1.1|9=113|35=A|34=1|49=REM4820|52=20201008-22:22:59.886|56=ROFX|553=User|554=pass|98=0|108=30|141=Y|1137=9|10=054|
(出于隐私原因更改了用户和通行证)

以下是回应:

8=FIXT.1.1|9=135|35=5|34=1|49=ROFX|52=20201008-22:33:00.356|56=REM4820|1128=9|58=Invalid user for session. Username and SenderCompId must match.|1409=1|10=124|
我尝试过的事情:

  • 我已经下载了python项目,并使用它与Remarket连接,得到了相同的结果。(和正在发送的相同登录消息)

  • 交换SenderCompID和TargetCompID,正如我在另一篇文章中看到的,它帮助了某人

  • 使用新密码让新用户尝试不同的帐户,结果相同

  • 不发送用户和密码,因为Remarkets文档说明这是不必要的:主机没有响应

  • 播放SSL配置。我使用的是Stunnel4,但我假设如果“用户名和发件人公司ID必须匹配”,则收件人必须接收并阅读我的邮件

  • 忽略SSL并直接连接:由对等方重置连接

我的第一个也是最重要的问题是:我做错了什么?

另一个可能真正有用的问题:

  • 有没有一种方法可以让我使用一个漂亮的GUI(或非GUI)连接(操作系统:ubuntu)并检查修复消息以查看连接消息和我的不连接消息之间的区别?这就是我对python的意图,但我得到了同样的结果

  • 是否有人知道Remarkets替代方案,将其归咎于Remarkets就像将其归咎于编译器,但我需要检查一下

  • 为什么服务器会回答字段58并给出解释,但有时我会得到“对等方重置连接”

Client.conf

[DEFAULT]
PersistMessages=Y
ConnectionType=initiator 
ReconnectInterval=60
FileLogPath=./Logs/ 
FileStorePath=./Sessions/
UseLocalTime=Y
UseDataDictionary=Y
AppDataDictionary=conf/spec/FIX50SP2_rofex.xml
TransportDataDictionary=conf/spec/FIXT11.xml
StartTime=00:00:00
EndTime=00:00:00
ValidateUserDefinedFields=N
ResetOnLogon=Y
ResetOnLogout=Y
DefaultApplVerID=FIX.5.0SP2

[SESSION]
BeginString=FIXT.1.1
SenderCompID=REM4820
TargetCompID=ROFX
SocketConnectHost=127.0.0.1
SocketConnectPort=9876
HeartBtInt=30

TimeInForce=Day
TradingSessionID=1
ScreenLogShowIncoming=Y
ScreenLogShowOutgoing=Y
ScreenLogEvents=Y
LogoutTimeout=5
LogonTimeout=30
ResetOnDisconnect=Y
RefreshOnLogon=Y
SocketNodelay=N
ValidateFieldsHaveValues=N
ValidateFieldsOutofOrder=N
CheckLatency=N

这肯定是一个特定于交易对手的逻辑问题,而不是修复协议问题

让我们从字面上看:

用户名和发件人compid必须匹配。

仅从该消息来看,标记49(SenderCompID)和标记553(Username)必须具有相同的值,这一点似乎非常清楚


是吗?我猜他们没有。尝试将553设置为与49匹配。

您是否已连接到启动器或接收器?检查配置文件HI!我正试图以发起人的身份连接到一个接受者。阿塞普托啤酒。将配置文件添加到post。就是这样!!非常感谢你!两天前,Y试图在他们两人身上涂抹REM4820,但不是相反!!!