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); }
//!切换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); }
//!切换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); }