コード例 #1
0
 @Override
 public void messageReceived(IoSession ioSession, Object message) throws Exception {
   String messageString = (String) message;
   SessionID remoteSessionID = MessageUtils.getReverseSessionID(messageString);
   Session quickFixSession = findQFSession(ioSession, remoteSessionID);
   if (quickFixSession != null) {
     quickFixSession.getLog().onIncoming(messageString);
     try {
       Message fixMessage = parse(quickFixSession, messageString);
       processMessage(ioSession, fixMessage);
     } catch (InvalidMessage e) {
       if (MsgType.LOGON.equals(MessageUtils.getMessageType(messageString))) {
         log.error("Invalid LOGON message, disconnecting: " + e.getMessage());
         ioSession.closeNow();
       } else {
         log.error("Invalid message: " + e.getMessage());
       }
     }
   } else {
     log.error("Disconnecting; received message for unknown session: " + messageString);
     ioSession.closeNow();
   }
 }