9=62

问题描述 投票:0回答:1

我试图用quickfix来构建我的修复应用程序,但是当启动它时,它首先发送一个注销消息,然后再登录,并引发Session not Found。

class Application(quickfix.Application):

def __init__(self, session, logger):        
    super(Application, self).__init__()
    self.session = session
    self.logger = logger

def onCreate(self, sessionID):
    self.logger.info("Created session {}.".format(sessionID))
    return
    
def onLogon(self, sessionID):
    self.logger.info("Logon session {}.".format(sessionID))      
    return 

def onLogout(self, sessionID):
    self.logger.info("Logout session {}.".format(sessionID))
    return

def toAdmin(self, message, sessionID):
    msgType = quickfix.MsgType()
    message.getHeader().getField(msgType)
    
    if msgType.getValue() == quickfix.MsgType_Logon:
        self.logger.info('LOGON SessionID {}'.format(sessionID))
    elif msgType.getValue() == quickfix.MsgType_Logout:
        self.logger.info('LOGOUT SessionID {}'.format(sessionID))
    
    self.logger.info('to Admin session {} send {}'.format(sessionID, self.messageToString(message)))
    self.session.sendToTarget(message)
    return

def toApp(self, message, sessionID):
    self.logger.info('to App: {}'.format(message))
    self.session.sendToTarget(message)
    return

def fromApp(self, message, sessionID):
    self.logger.info('from App: {}'.format(message))
    return

logger = create_logger(config)
settings = quickfix.SessionSettings(client_config)
application = Application(quickfix.Session, logger)
storeFactory = quickfix.FileStoreFactory(settings)
logFactory = quickfix.ScreenLogFactory(settings)
initiator = quickfix.SocketInitiator(application, storeFactory, settings, logFactory)
initiator.start()

我得到了以下信息。

LOGOUT SessionID FIX44:Client->Serverto Admin session FIX44:Client->Server send 8=FIX.4.

python session quickfix fix-protocol
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.