
本文档旨在指导开发者如何使用 Python QuickFIX 库通过 Stunnel 建立安全的 FIX (Financial Information eXchange) 连接。我们将详细介绍 Stunnel 的配置,QuickFIX 应用程序的设置,并提供调试技巧,以解决连接断开等常见问题,确保 FIX 消息的可靠传输。
Stunnel 用于创建客户端和服务器之间的加密连接。以下是一个 Stunnel 客户端配置示例:
CAfile=./Roots.crt cert=./cert.pfx client=yes verify=1 sslVersion = TLSv1.2 options = NO_SSLv2 options = NO_SSLv3 debug=7 foreground=yes output=./stunnel.log [SESSION] accept=8080 connect=EXAMPLE_URL:EXAMPLE_IP
配置项说明:
注意事项:
立即学习“Python免费学习笔记(深入)”;
QuickFIX 应用程序需要配置连接参数,例如目标服务器地址、端口、会话 ID 等。以下是一个 QuickFIX Initiator 配置文件示例:
[DEFAULT] ConnectionType=initiator LogonTimeout=10 ReconnectInterval=30 FileLogPath=./Logs/ [SESSION] BeginString=FIXT.1.1 DefaultApplVerID=9 SenderCompID=EXAMPLE_COMP_SENDER TargetCompID=EXAMPLE_COMP_TARGET StartTime=00:00:00 EndTime=00:00:00 HeartBtInt=30 CheckLatency=N MaxLatency=240 SocketConnectPort=8080 SocketConnectHost=127.0.0.1 UseDataDictionary=Y TransportDataDictionary=./FIX50SP2.xml FileStorePath=./Sessions/
配置项说明:
注意事项:
立即学习“Python免费学习笔记(深入)”;
以下是一个简单的 Python QuickFIX Initiator 代码示例:
import quickfix as fix
class Application(fix.Application):
orderID = 0
execID = 0
def gen_ord_id(self):
print("gen_ord_id")
return 1
def onCreate(self, sessionID):
print("onCreate : Session (%s)" % sessionID.toString())
return
def onLogon(self, sessionID):
self.sessionID = sessionID
print("Successful Logon to session '%s'." % sessionID.toString())
return
def onLogout(self, sessionID):
print("onLogout")
return
def toAdmin(self, sessionID, message):
print("toAdmin")
return
def fromAdmin(self, sessionID, message):
print("fromAdmin")
return
def toApp(self, sessionID, message):
print("Recieved the following message: %s" % message.toString())
return
def fromApp(self, message, sessionID):
print("fromApp")
return
config_file = "./initiator.cfg"
settings = fix.SessionSettings(config_file)
application = Application()
storeFactory = fix.FileStoreFactory(settings)
logFactory = fix.FileLogFactory(settings)
initiator = fix.SocketInitiator(application, storeFactory, settings, logFactory)
initiator.start()代码说明:
运行步骤:
问题:Stunnel 连接立即断开。
可能原因:
调试方法:
发送心跳请求:
QuickFIX 会自动处理心跳消息。如果需要手动发送心跳请求,可以创建一个 Heartbeat 消息并发送。例如:
import quickfix as fix
# ... (省略 Application 类的定义)
def onLogon(self, sessionID):
self.sessionID = sessionID
print("Successful Logon to session '%s'." % sessionID.toString())
# 发送心跳请求
heartbeat = fix.Heartbeat()
fix.Session.sendToTarget(heartbeat, sessionID)
return总结:
通过正确配置 Stunnel 和 QuickFIX,并结合调试技巧,可以成功建立安全的 FIX 连接。仔细检查日志信息,并根据实际情况调整配置参数,是解决问题的关键。
以上就是使用 Python QuickFIX 通过 Stunnel 连接的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号