GetReverseSessionID() public static method

public static GetReverseSessionID ( Message msg ) : SessionID
msg Message
return SessionID
コード例 #1
0
ファイル: SocketReader.cs プロジェクト: RJOBrien/quickfixn
        protected void OnMessageFoundInternal(string msg)
        {
            // Message fixMessage;

            try
            {
                if (null == qfSession_)
                {
                    Message adjustedMsg = null;

                    if (socketSettings_.RjoAdapterTestMode)
                    {
                        this.Log("RjoAdapterTestMode: ignoring SenderSubID & SenderLocID in sender's logon message");
                        // need to ignore client's SubID when looking up session
                        Regex  rgx = new Regex($"{Message.SOH}50=[^{Message.SOH}]*");
                        string s   = rgx.Replace(msg, "");
                        rgx         = new Regex($"{Message.SOH}142=[^{Message.SOH}]*");
                        s           = rgx.Replace(s, "");
                        adjustedMsg = new Message(s, false);
                    }
                    else
                    {
                        adjustedMsg = new Message(msg);
                    }

                    qfSession_ = Session.LookupSession(Message.GetReverseSessionID(adjustedMsg));
                    if (null == qfSession_)
                    {
                        this.Log("ERROR: Disconnecting; received message for unknown session: " + adjustedMsg);
                        DisconnectClient();
                        return;
                    }
                    else
                    {
                        if (!HandleNewSession(msg))
                        {
                            return;
                        }
                    }
                }

                try
                {
                    qfSession_.Next(msg);
                }
                catch (System.Exception e)
                {
                    this.Log("Error on Session '" + qfSession_.SessionID + "': " + e.ToString());
                }
            }
            catch (InvalidMessage e)
            {
                HandleBadMessage(msg, e);
            }
            catch (MessageParseError e)
            {
                HandleBadMessage(msg, e);
            }
        }
コード例 #2
0
ファイル: SocketReader.cs プロジェクト: alphapoint/quickfixn
        protected void OnMessageFoundInternal(string msg)
        {
            // Message fixMessage;

            try
            {
                if (null == qfSession_)
                {
                    qfSession_ = Session.LookupSession(Message.GetReverseSessionID(msg));
                    if (null == qfSession_)
                    {
                        this.Log("ERROR: Disconnecting; received message for unknown session: " + msg);
                        DisconnectClient();
                        return;
                    }
                    else if (IsAssumedSession(qfSession_.SessionID))
                    {
                        this.Log("ERROR: Disconnecting; received message for unknown session: " + msg);
                        qfSession_ = null;
                        DisconnectClient();
                        return;
                    }
                    else
                    {
                        if (!HandleNewSession(msg))
                        {
                            return;
                        }
                    }
                }

                try
                {
                    qfSession_.Next(msg);
                }
                catch (System.Exception e)
                {
                    this.Log("Error on Session '" + qfSession_.SessionID + "': " + e.ToString());
                }
            }
            catch (InvalidMessage e)
            {
                HandleBadMessage(msg, e);
            }
            catch (MessageParseError e)
            {
                HandleBadMessage(msg, e);
            }
        }
コード例 #3
0
        protected void OnMessageFoundInternal(string msg)
        {
            ///Message fixMessage;

            try
            {
                if (null == qfSession_)
                {
                    qfSession_ = Session.LookupSession(Message.GetReverseSessionID(msg));

                    if (null == qfSession_)
                    {
                        // If more complete QFn session (inc SubID tags etc) does not exist then perform session lookup using Version, TargetCompID and SenderCompID only
                        qfSession_ = Session.LookupSession(Message.GetBasicReverseSessionID(msg));
                    }

                    if (null == qfSession_)
                    {
                        this.Log("ERROR: Disconnecting; received message for unknown session: " + msg);
                        DisconnectClient();
                        return;
                    }
                    else
                    {
                        if (!HandleNewSession(msg))
                        {
                            return;
                        }
                    }
                }

                try
                {
                    qfSession_.Next(msg);
                }
                catch (System.Exception e)
                {
                    this.Log("Error on Session '" + qfSession_.SessionID + "': " + e.ToString());
                }
            }
            catch (InvalidMessage e)
            {
                HandleBadMessage(msg, e);
            }
            catch (MessageParseError e)
            {
                HandleBadMessage(msg, e);
            }
        }