Example #1
0
        public async Task <bool> Init()
        {
            m_GMainEntry    = GrainFactory.GetGrain <IMainEntry>(0);
            m_INetUserEntry = await m_GMainEntry.GetINetUserEntry();

            m_TableRoomInfo = new TableRoomInfo();

            m_TableRoomInfo.TableRoomState = ETableRoomState.ERoom_InActive;
            m_TableRoomInfo.IMaxRoomPlayer = GameConstant.IMaxTableRoomPlayer;
            m_TableRoomInfo.Ls_User.Clear();
            m_TableRoomInfo.Id          = this.GetPrimaryKeyString();
            m_TableRoomInfo.RoomOwnerId = string.Empty;


            {
                TableRoomState = ETableRoomState.ERoom_InActive;
                var tr_idle     = new TR_Idle();
                var tr_ready    = new TR_Ready();
                var tr_loading  = new TR_Loading();
                var tr_ingame   = new TR_InGame();
                var tr_gameover = new TR_GameOver();
                var tr_inactive = new TR_InActive();
                var tr_cleanup  = new TR_CleanUp();
                m_Fsm = new Fsm <GTableRoom>(this.GetType().FullName, this,
                                             tr_inactive, tr_idle, tr_ready, tr_loading, tr_ingame, tr_gameover, tr_cleanup);
                m_Fsm.Start <TR_InActive>();
            }
            Log.Debug($"TableRoom Init {m_TableRoomInfo.Id}");
            var bret = true;

            return(bret);//Task.FromResult(bret);
        }
Example #2
0
 public Task <IMainEntry> GetInstance()
 {
     if (m_IMainEntry == null)
     {
         m_IMainEntry = GrainFactory.GetGrain <IMainEntry>(0);
     }
     return(Task.FromResult(m_IMainEntry));
 }
Example #3
0
        public async Task BroadCast(IMessage msg)
        {
            IMainEntry ime = GrainFactory.GetGrain <IMainEntry>(0);
            var        igw = await ime.GetIGateWay();

            foreach (var vk in  Dict_ChatUser)
            {
                await igw.Reply(await vk.Value.GetSessionId(), msg);
            }
        }
Example #4
0
        public override bool Init()
        {
            var bret = base.Init();

            m_IClusterClient = InitialiseClient().Result;
            m_IMainEntry     = m_IClusterClient.GetGrain <IMainEntry>(0);
            m_IMainEntry.Init().Wait();
            m_SiloTimer = new SiloTimer();
            m_SiloTimer.Reset();
            return(bret);
        }
Example #5
0
        /*
         *
         * public Task Say(string msg)
         * {
         *   Log.Debug($"SayGrain:ThreadId:{Thread.CurrentThread.ManagedThreadId}");
         *
         *   IMainEntry ime = GrainFactory.GetGrain<IMainEntry>(0);
         *   var chatroom =   ime.GetIChatRoom();
         *
         *
         *   return Task.CompletedTask;
         * }
         */

        public async Task Say(string msg)
        {
            Console.WriteLine(msg);
            IMainEntry ime      = GrainFactory.GetGrain <IMainEntry>(0);
            var        chatroom = await ime.GetIChatRoom();

            await chatroom.BroadCast(new Say_Res
            {
                Msg = $"{this.GetPrimaryKeyLong()}{Name}:{msg}"
            });

            //return Task.CompletedTask;
        }
Example #6
0
        public override bool Init()
        {
            var bret = base.Init();

            m_IClusterClient  = InitialiseClient();
            m_IMainEntry      = m_IClusterClient.GetGrain <IMainEntry>(0);
            m_INetUserEntry   = m_IMainEntry.GetINetUserEntry().Result;
            m_ITableRoomEntry = m_IMainEntry.GetITableRoomEntry().Result;

            Log.Debug("SiloClientModule:Init");

            return(bret);
        }
Example #7
0
        public override bool Init()
        {
            m_ClusterClient = InitialiseClient();

            m_MainEntry = m_ClusterClient.GetGrain <IMainEntry>(0);

            m_SiloGateWay_Obs = new SiloGateWay_Obs();
            m_IGateWay_Obs    = m_ClusterClient.CreateObjectReference <IGateWay_Obs>(m_SiloGateWay_Obs).Result;

            m_IGateWay = m_MainEntry.GetIGateWay().Result;

            m_IGateWay.SubscribeAsync(m_IGateWay_Obs).Wait();

            m_ChatRoom = m_MainEntry.GetIChatRoom().Result;


            return(base.Init());
        }