Zjh游戏(五)模块类的实现

完善网络消息的处理中心

  • 作用:分发到各自对应的模块去处理

  • 在GameServer中创建一个文件夹Logo

  • 创建一个所有的模块类继承的接口,IHandler,一个断开方法,一个接收消息的方法

  • 创建操作码对应的模块类

  • 在网络消息的处理中心分发到每个模块类中

Server项目图
在这里插入图片描述


IHandler的实现

namespace GameServer.Logic
{
    /// <summary>
    ///每个模块处理的接口
    /// </summary>
    public interface IHandler
    {
        void DisConnected(ClientPeer clientPeer);
        void Receive(ClientPeer client,int subCode,object value);
    }
}

四个模块类的实现

//账号模块
namespace GameServer.Logic
{
    /// <summary>
    /// 账号模块的处理
    /// </summary>
   public class AccountHandler : IHandler
    {
        public void DisConnected(ClientPeer clientPeer)
        {
            
        }

        public void Receive(ClientPeer client, int subCode, object value)
        {
            
        }
    }
}

//匹配模块
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyServer;

namespace GameServer.Logic
{
    /// <summary>
    /// 匹配模块的处理
    /// </summary>
    public class MatchHandler : IHandler
    {
        public void DisConnected(ClientPeer clientPeer)
        {

        }

        public void Receive(ClientPeer client, int subCode, object value)
        {

        }
    }
}

//聊天模块
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyServer;

namespace GameServer.Logic
{
    /// <summary>
    /// 聊天模块的处理
    /// </summary>
    public class ChantHandler : IHandler
    {
        public void DisConnected(ClientPeer clientPeer)
        {
           
        }

        public void Receive(ClientPeer client, int subCode, object value)
        {
          
        }
    }
}

//战斗模块
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyServer;

namespace GameServer.Logic
{
    /// <summary>
    /// 战斗模块的处理
    /// </summary>
    public class FightHandler : IHandler
    {
        public void DisConnected(ClientPeer clientPeer)
        {
          
        }

        public void Receive(ClientPeer client, int subCode, object value)
        {
        
        }
    }
}


完善网络消息处理中心,分发消息到各自对应的模块

sing GameServer.Logic;
using MyServer;
using Protocol.Code;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GameServer
{
    /// <summary>
    /// 消息处理中心,分发到对应的模块类
    /// </summary>
    public class NetMessageCenter : IApplication
    {
        private AccountHandler accountHandler = new AccountHandler();
        private ChantHandler chantHandler = new ChantHandler();
        private MatchHandler matchHandler = new MatchHandler();
        private FightHandler fightHandler = new FightHandler();

        /// <summary>
        /// 断开连接,分发到各个对应的模块进行处理
        /// </summary>
        /// <param name="client"></param>
        public void Disconnected(ClientPeer client)
        {
            fightHandler.DisConnected(client);
            matchHandler.DisConnected(client);
            chantHandler.DisConnected(client);
            accountHandler.DisConnected(client);

        }
        /// <summary>
        /// 接收消息,分发到各自对应的模块进行处理
        /// </summary>
        /// <param name="client">客户端连接对象</param>
        /// <param name="msg">网络消息类</param>
        public void Receive(ClientPeer client, NetMsg msg)
        {
            switch (msg.opCode)
            {
                case OpCode.Account:
                    accountHandler.Receive(client,msg.subCode,msg.value);
                    break;
                case OpCode.Chat:
                    chantHandler.Receive(client, msg.subCode, msg.value);
                    break;
                case OpCode.Match:
                    matchHandler.Receive(client, msg.subCode, msg.value);
                    break;
                case OpCode.Fight:
                    fightHandler.Receive(client, msg.subCode, msg.value);
                    break;
            }
        }
    }
}

有需要学习视频的欢迎关注微信公众号
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值