Beispiel #1
0
        public void SessionChangeWorker(Int64 nSessionID, int nToWorkerIndex, byte[] data)
        {
            GateChangeLogicNodeReq msg = new GateChangeLogicNodeReq()
            {
                SessionId = nSessionID, AllocWorker = string.Format("worker#{0}", nToWorkerIndex), ExtraData = data
            };

            m_ffrpc.Call(m_strDefaultGate, msg);
        }
Beispiel #2
0
        //!切换worker
        public EmptyMsgRet ChangeSessionLogic(GateChangeLogicNodeReq reqMsg)
        {
            if (m_dictClients.ContainsKey(reqMsg.Session_id) == false)
            {
                return(m_msgEmpty);
            }
            ClientInfo            cinfo    = m_dictClients[reqMsg.Session_id];
            SessionEnterWorkerReq msgEnter = new SessionEnterWorkerReq()
            {
            };

            msgEnter.From_worker = cinfo.strAllocWorker;
            cinfo.strAllocWorker = reqMsg.Alloc_worker;

            msgEnter.Session_id = reqMsg.Session_id;
            msgEnter.From_gate  = m_strGateName;
            msgEnter.Session_ip = cinfo.sockObj.GetIP();

            msgEnter.To_worker  = reqMsg.Alloc_worker;
            msgEnter.Extra_data = reqMsg.Extra_data;
            m_ffrpc.Call(reqMsg.Alloc_worker, msgEnter);
            return(m_msgEmpty);
        }
Beispiel #3
0
        //!切换worker
        public EmptyMsgRet ChangeSessionLogic(GateChangeLogicNodeReq reqMsg)
        {
            FFLog.Trace(string.Format("FFGate ChangeSessionLogic....sessionid={0}", reqMsg.SessionId));
            if (m_dictClients.ContainsKey(reqMsg.SessionId) == false)
            {
                return(m_msgEmpty);
            }
            ClientInfo            cinfo    = m_dictClients[reqMsg.SessionId];
            SessionEnterWorkerReq msgEnter = new SessionEnterWorkerReq()
            {
            };

            msgEnter.FromWorker  = cinfo.strAllocWorker;
            cinfo.strAllocWorker = reqMsg.AllocWorker;

            msgEnter.SessionId = reqMsg.SessionId;
            msgEnter.FromGate  = m_strGateName;
            msgEnter.SessionIp = cinfo.sockObj.GetIP();

            msgEnter.ToWorker  = reqMsg.AllocWorker;
            msgEnter.ExtraData = reqMsg.ExtraData;
            m_ffrpc.Call(reqMsg.AllocWorker, msgEnter);
            return(m_msgEmpty);
        }