public static void Send(this Session session, IMessage message) { OpcodeTypeComponent opcodeTypeComponent = Game.Scene.GetComponent <OpcodeTypeComponent>(); ushort opcode = opcodeTypeComponent.GetOpcode(message.GetType()); byte[] bytes = session.Network.MessagePacker.SerializeToByteArray(message); session.Send(opcode, bytes); }
private async void TimeoutRemoveKey(long key) { await Game.Scene.GetComponent <TimerComponent>().WaitAsync(20000); //密匙过期向登录服务器发送玩家断开消息 if (this._sessionKey.ContainsKey(key)) { long userId = Get(key); IPEndPoint realmAddress = Game.Scene.GetComponent <StartConfigComponent>().RealmConfig.GetComponent <InnerConfig>().IPEndPoint; Session realmSession = Game.Scene.GetComponent <NetInnerComponent>().Get(realmAddress); realmSession.Send(new PlayerDisconnect() { UserId = userId }); } }
private async void JoinTimeout(long key) { await Game.Scene.GetComponent <TimerComponent>().WaitAsync(3000); if (this.keys.ContainsKey(key)) { Gamer gamer = Get(key); //向匹配服务器发送玩家离开房间消息 string matchAddress = Game.Scene.GetComponent <StartConfigComponent>().MatchConfig.GetComponent <InnerConfig>().Address; Session matchSession = Game.Scene.GetComponent <NetInnerComponent>().Get(matchAddress); matchSession.Send(new GamerQuitRoom() { PlayerID = gamer.Id, RoomID = this.GetEntity <Room>().Id }); gamer.Dispose(); } }
public void Send <Message>(Message message) where Message : AActorMessage { Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(this.Address); session.Send(message); }