接收信息,调用入口

    protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {System.out.println(msg);curCtx = ctx ;//ExplainString(msg); RequetMap.instance().map(msg , this);}

RequetMap:1.单例2.init初始化3.map
  1 import java.io.File;
  2 import java.util.List;
  3
  4 import org.dom4j.Document;
  5 import org.dom4j.DocumentException;
  6 import org.dom4j.Element;
  7 import org.dom4j.io.SAXReader;
  8
  9 import net.sf.json.JSONObject;
 10 import server.MyServerHanlder;
 11
 12 /**
 13  * @author kimi
 14  *
 15  */
 16 public class RequetMap {
 17
 18      List<Element> infos ;
 19
 20     /**
 21      * 将请求的json 解析  将rid根据 xml分流到具体的方法
 22      * exp: RequetMap.instance().map("{id:'8000',content:{name:'AA'}}");
 23      * @param info
 24      */
 25     public  void  map( String  info, MyServerHanlder handler)
 26     { 30
 31         JSONObject  r = JSONObject.fromObject(info) ;
 32
 33         String  id = r.getString("id") ;
 34         String  content = r.getString("content") ;
 38         for (Element el : infos) { 40             if( el.attributeValue("id").equals(id))
 41             { 45                 // 映射方法
 46                 try {
 47                     Class<?> class1 = Class.forName( el.attributeValue("class"));
 48
 49                     IMapDemo  demo = ( IMapDemo) class1.newInstance() ;
 50                     demo.Init(content , handler);
 51
 52                 } catch ( Exception e) { 54                     e.printStackTrace();
 55                 }
 56             }
 57         }
 58
 59
 60
 61     }
 62
 63
 64     /**
 65      * 初始化请求映射器
 66      * @throws DocumentException
 67      */
 68     public void Init()
 69     {
 70         // 加载xml文件并缓存在变量里面
 71
 72            SAXReader saxReader = new SAXReader();
 73
 74             Document document;
 75             try {
 76                 document = saxReader.read(new File("conf/responseMapping.xml"));
 77
 78             // 获取根元素
 79             Element root = document.getRootElement(); 81
 82             // 获取所有子元素
 83             infos = root.elements();
 86
 87             } catch (DocumentException e) { 89                 e.printStackTrace();
 90             }
 91
 92     }
 93
 94     static RequetMap _instance ;
 95     public static  RequetMap instance()
 96     {
 97         if( _instance == null) _instance = new RequetMap() ;
 98         return  _instance ;
 99     }
100 }

IMapDemo

1 public interface IMapDemo {
2
3     /**
4      *
5      * @param info
6      * 传参数进来的信息  需要进行再处理
7      */
8     public  void Init( String  info, Object handler) ;
9 }

GameLogin

 1 import model.GameCenter;
 2 import server.MyServerHanlder;
 3
 4 public class GameLogin implements IMapDemo {
 5
 6     @Override
 7     public void Init(String info , Object handler)  {
 8         // TODO Auto-generated method stub
 9         MyServerHanlder myhandler = (MyServerHanlder) handler ;
10         // TODO Auto-generated method stub
11         myhandler.curPlayer = GameCenter.instance().AddPlayer(info) ;
12         GameCenter.instance().RefreshState();
13     }
14
15 }

responseMapping.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <include>
 3     <item id="8000"  desc="请求描述8000"  class="MapFunc.MapLoginLogin"/>
 4     <item id="8001"  desc="请求描述8001"  class="MapFunc.MapLoginLogout"/>
 5
 6     <item id="0001"  desc="添加用户注册名字"       class="MapFunc.GameLogin"/>
 7     <item id="0002"  desc="用户准备"            class="MapFunc.GamePrepare"/>
 8     <item id="0003"  desc="用户报数"            class="MapFunc.GameCount"/>
 9     <item id="0004"  desc="用户下一局"           class="MapFunc.GameNext"/>
10 </include>

转载于:https://www.cnblogs.com/didiaodexi/p/6513068.html

Java(CS)请求分流相关推荐

  1. 解决Fiddler不能监听Java HttpURLConnection请求的方法

    在默认情况下,Fiddler不能监听Java HttpURLConnection请求.究其原因,Java的网络通信协议栈可能浏览器的通信协议栈略有区别,Fiddler监听Http请求的原理是 在应用程 ...

  2. java http请求

    java http 请求几种工具 Jsoup <dependency><groupId>org.jsoup</groupId><artifactId>j ...

  3. java页面请求跑批处理sql的有关问题

    java页面请求跑批处理sql的问题 我想做一个页面,用户登录后可以点一个按钮,开始跑批处理sql. 要求:1,用户的页面不能重复点击跑批按钮.   2,用户的会话关闭后,批处理仍然能跑完.除非用户自 ...

  4. Java Web 请求转发与请求重定向

    Java Web 请求转发与请求重定向 请求转发 服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后菜返回给用户,各个信息资源使用请求转发机制互相转发请求,但是用户 ...

  5. Java规范请求中的数字

    你们都了解Java社区流程 (JCP),不是吗? JCP是为Java技术开发标准技术规范的机制. 任何人都可以注册该站点并参与对Java规范请求(JSR)的审查和提供反馈,并且任何人都可以注册成为JC ...

  6. java 判断请求为 ajax请求_Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求...

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>> ...

  7. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求 Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断 ...

  8. Java HttpURLConnection示例– Java HTTP请求GET,POST

    HttpURLConnection class from java.net package can be used to send Java HTTP Request programmatically ...

  9. java获取请求ip的方法

    在上篇文章中我们介绍了 java获取请求 ip的方法,那么这篇文章我们就来详细讲解下获取请求 ip的方法.获取请求 ip的方法是基于 HTTP协议的,其原理如下: 1.用 web应用程序,将 web服 ...

最新文章

  1. (转)iOS7界面设计规范(1) - UI基础 - 为iOS7而设计
  2. hierarchyviewer
  3. LeetCode15:三数之和(转载思路)
  4. CV Code | 本周新出计算机视觉开源代码汇总(含自动驾驶目标检测、医学图像分割、风格迁移、语义分割、目标跟踪等)...
  5. js中值得推荐的Memoization
  6. 激战 5G:国内外技术的分水岭
  7. 本地VM安装虚拟机,使用xshell连接
  8. 推荐给初学LSTM或者懂个大概却不完全懂的人
  9. 立创EDA学习笔记(3)——创建元件封装
  10. 电感式dcdc原理(转)
  11. 音视频开发(四十四):M3U8边缓存边播放
  12. 小米手机相机的专业模式
  13. css3 两种背景色,CSS3 / 实例改变背景色和位置 - 汇智网
  14. matlab中的regress函数总结
  15. 【BZOJ4372】烁烁的游戏(点分树)
  16. 渗透测试类型(白盒测试、黑盒测试)和漏洞扫描器
  17. 网约车成品源码 代驾顺风车拼车打车货运司乘双端小程序安卓苹果源码
  18. 用于 LLM 应用开发的 LangChain 中文版
  19. 打印机驱动下载ts3180 ts3480
  20. JAVA代码行数统计工具(是时候看看程序员真实的的代码量了)

热门文章

  1. 历届试题 大臣的旅费 树形DP
  2. 浙大pat1009题解
  3. lambdafiltermapreduce函数的基本使用
  4. 斯坦福-随机图模型-week1.0_
  5. 2017-2018-2 20155327 《信息安全系统设计基础》第2周学习总结
  6. BeautifulSoup库的使用
  7. tcp协议头窗口,滑动窗口,流控制,拥塞控制关系
  8. 关于this的指向问题
  9. 【StatLearn】统计学习中knn算法实验(2)
  10. asp.net 中Gridview 使用总结