我是 QuickFIX 的新手,我有一些关于 QuickFix 的基本问题:
1)考虑到在某一时刻,接受者和发起者之间只有一个修复会话。我不太明白 ThreadedSocketInitiator 和 ThreadedSocketAcceptor 类的用途。
或者这些类的存在是为了促进多个会话,其中多个“发起者”可以与不同的接受者交谈,反之亦然?
2) QuickFIX 是否具有某种消息持久性,例如,如果消息在传输过程中丢失会怎样?引擎是否负责重新发送消息?
1) Quickfix 每个会话使用 1 个线程。您可以假设的引擎是整个过程。
当您想将引擎用作客户端时使用 ThreadedSocketInitiator。您连接到另一台服务器并传输消息。您启动连接,因此名称为启动器。您为使用服务器设置的每个会话生成一个新线程。
当您想将引擎用作服务器时,使用 ThreadedSocketAcceptor。您接受连接因此接受者。当您与客户端建立新会话时,只会为该特定会话生成一个新线程。
请记住,所有会话都有一个唯一的 ID 来区分多个会话。服务器可以与同一个客户端有多个会话,反之亦然。
2) 是的。但是接收方必须发起一个 ResendRequest 消息才能让发送方再次发送。如果它没有收到对已发送消息的回复,它将通过检查配置文件中的延迟标志来自动执行此操作。