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); }
public Task <IMainEntry> GetInstance() { if (m_IMainEntry == null) { m_IMainEntry = GrainFactory.GetGrain <IMainEntry>(0); } return(Task.FromResult(m_IMainEntry)); }
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); } }
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); }
/* * * 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; }
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); }
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()); }