Example #1
0
        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);
        }
Example #2
0
        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
                });
            }
        }
Example #3
0
        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();
            }
        }
Example #4
0
        public void Send <Message>(Message message) where Message : AActorMessage
        {
            Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(this.Address);

            session.Send(message);
        }