public bool Init(string strBrokerHost, int nWorkerIndex, string[] listEnableClassNames) { m_nWorkerIndex = nWorkerIndex; m_strWorkerName = string.Format("worker#{0}", m_nWorkerIndex); m_ffrpc = new FFRpc(m_strWorkerName); if (m_ffrpc.Open(strBrokerHost) == false) { FFLog.Error("worker ffrpc open failed!"); return(false); } m_ffrpc.Reg <RouteLogicMsgReq, EmptyMsgRet>(this.OnRouteLogicMsgReq); m_ffrpc.Reg <SessionOfflineReq, EmptyMsgRet>(this.OnSessionOfflineReq); m_ffrpc.Reg <SessionEnterWorkerReq, EmptyMsgRet>(this.OnSessionEnterWorkerReq); string err = Util.InitClassByNames(listEnableClassNames); if (err != "") { FFLog.Error("worker init failed mod=" + err); return(false); } m_listEnableClassNames = listEnableClassNames; return(true); }
public bool Init(string strBrokerHost, string strGateListenIpPort, int nGateIndex = 0) { m_nGateIndex = nGateIndex; m_strGateName = string.Format("gate#{0}", m_nGateIndex); m_ffrpc = new FFRpc(m_strGateName); if (m_ffrpc.Open(strBrokerHost) == false) { FFLog.Error("gate ffrpc open failed!"); return(false); } m_ffrpc.Reg <GateChangeLogicNodeReq, EmptyMsgRet>(this.ChangeSessionLogic); m_ffrpc.Reg <GateCloseSessionReq, EmptyMsgRet>(this.CloseSession); m_ffrpc.Reg <GateRouteMsgToSessionReq, EmptyMsgRet>(this.RouteMsgToSession); m_ffrpc.Reg <GateBroadcastMsgToSessionReq, EmptyMsgRet>(this.BroadcastMsgToSession); m_acceptor = FFNet.Listen(strGateListenIpPort, new SocketMsgHandler(HandleMsg), new SocketBrokenHandler(HandleBroken)); if (m_acceptor != null) { FFLog.Trace(string.Format("FFGate open....{0} ok", strGateListenIpPort)); } else { FFLog.Error(string.Format("FFGate open....{0} failed", strGateListenIpPort)); } return(true); }
public static void Main(string[] args) { string host = "tcp://127.0.0.1:43210"; FFBroker ffbroker = new FFBroker(); ffbroker.Open(host); string strServiceName = "worker#0"; FFRpc ffrpc = new FFRpc(strServiceName); if (ffrpc.Open(host) == false) { FFLog.Trace("ffrpc open failed!"); } ffrpc.Reg((SessionEnterWorkerReq req) => { FFLog.Trace(string.Format("ffrpc SessionEnterWorkerReq £¡£¡£¡FromGate={0}", req.From_gate)); return(req); }); Console.ReadKey(); ffrpc.GetTaskQueue().Post(() => { SessionEnterWorkerReq reqMsg = new SessionEnterWorkerReq() { From_gate = "gate#0" }; WorkerCallMsgReq reqWorkerCall = new WorkerCallMsgReq(); //ffrpc.Call(strServiceName, reqMsg); reqMsg.From_gate = "gate#1"; ffrpc.Call(strServiceName, reqWorkerCall, (SessionEnterWorkerReq retMsg) => { FFLog.Trace(string.Format("ffrpc SessionEnterWorkerReq return£¡£¡£¡FromGate={0}", retMsg.From_gate)); }); }); //FFNet.Timerout(1000, Theout); //FFNet.Timerout(2000, Theout); FFNet.Timerout(100000, () => { FFLog.Debug("AAAAAAAAAAAAAAA1"); ffrpc.Close(); }); FFLog.Trace(string.Format("main! {0}", System.Threading.Thread.CurrentThread.ManagedThreadId.ToString())); AppDomain.CurrentDomain.ProcessExit += (sender, arg) => { FFLog.Trace("exist!!"); }; Console.CancelKeyPress += (object sender, ConsoleCancelEventArgs e) => { e.Cancel = true; FFLog.Trace("exist3!!"); FFNet.Cleanup(); FFLog.Cleanup(); }; Console.ReadKey(); FFLog.Trace("exist!!"); FFNet.Cleanup(); FFLog.Cleanup(); }
public bool Open(string strBrokerHost, int nWorkerIndex) { m_nWorkerIndex = nWorkerIndex; m_strWorkerName = string.Format("worker#{0}", m_nWorkerIndex); m_ffrpc = new FFRpc(m_strWorkerName); if (m_ffrpc.Open(strBrokerHost) == false) { FFLog.Error("worker ffrpc open failed!"); return(false); } m_ffrpc.Reg <RouteLogicMsgReq, EmptyMsgRet>(this.OnRouteLogicMsgReq); m_ffrpc.Reg <SessionOfflineReq, EmptyMsgRet>(this.OnSessionOfflineReq); return(true); }