[杂记]Weixin4j-server处理模式

maven上比较老牌的JAVA微信组件。com.foxinmy.weixin4j

版本(gradle):
    api 'com.foxinmy:weixin4j-base:1.8.2'
    api 'com.foxinmy:weixin4j-mp:1.8.2'
    api 'com.foxinmy:weixin4j-server:1.1.9'
 

最近使用它的服务组件,顺便大概过了下处理的模式,这里做点记录,以便以后做spring整合再备查:

  1. weixin4j的服务器消息server采用nettry做单独的服务
  2. netty的核心ChannelPipeline构成如下,做了点小记录:
    WeixinServerInitializer里的关键代码:
    
            pipeline.addLast(new HttpServerCodec());
            pipeline.addLast(new HttpObjectAggregator(65536));
            pipeline.addLast(messageDecoder); //解析请求的XML,将所有的请求包括XML的参数处理为WeixinRequest
            pipeline.addLast(new WeixinResponseEncoder()); //处理微信要求的XML格式返回数据
            pipeline.addLast(new SingleResponseEncoder()); //处理简单类型的返回数据,签名验证等使用
            pipeline.addLast(new WeixinRequestHandler(messageDispatcher)); //业务分发器

     

  3. WeixinRequestHandler是一个分发处理器,在WeixinServerBootstrap类里导入了所有的处理handler
        public void startup(int bossThreads, int workerThreads, final int serverPort) {
            messageDispatcher.setMessageHandlerList(messageHandlerList);
            messageDispatcher.setMessageInterceptorList(messageInterceptorList);
  4. 自己调用public方法添加handler
     

        /**
         * 添加一个或者多个消息处理器
         *
         * @param messageHandler
         *            消息处理器
         * @return
         */
        public WeixinServerBootstrap addHandler(WeixinMessageHandler... messageHandler) {
            if (messageHandler == null) {
                throw new IllegalArgumentException("messageHandler not be null");
            }
            messageHandlerList.addAll(Arrays.asList(messageHandler));
            return this;
        }
  5. MessageHandlerAdapter里使用泛型标记为各种消息类型的处理器,代码不方便,直接截图了

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值