public class WxCpMessageRouter extends Object
微信消息路由器,通过代码化的配置,把来自微信的消息交给handler处理 说明: 1. 配置路由规则时要按照从细到粗的原则,否则可能消息可能会被提前处理 2. 默认情况下消息只会被处理一次,除非使用WxCpMessageRouterRule.next()3. 规则的结束必须用WxCpMessageRouterRule.end()或者WxCpMessageRouterRule.next(),否则不会生效 使用方法: WxCpMessageRouter router = new WxCpMessageRouter(); router .rule() .msgType("MSG_TYPE").event("EVENT").eventKey("EVENT_KEY").content("CONTENT") .interceptor(interceptor, ...).handler(handler, ...) .end() .rule() // 另外一个匹配规则 .end() ; // 将WxXmlMessage交给消息路由器 router.route(message);
| 构造器和说明 | 
|---|
| WxCpMessageRouter(WxCpService wxCpService)构造方法. | 
| WxCpMessageRouter(WxCpService wxMpService,
                 ExecutorService executorService)使用自定义的  ExecutorService. | 
| 限定符和类型 | 方法和说明 | 
|---|---|
| protected boolean | isMsgDuplicated(WxCpXmlMessage wxMessage) | 
| WxCpXmlOutMessage | route(WxCpXmlMessage wxMessage)处理微信消息. | 
| WxCpXmlOutMessage | route(WxCpXmlMessage wxMessage,
     Map<String,Object> context)处理微信消息. | 
| WxCpMessageRouterRule | rule()开始一个新的Route规则. | 
| void | setExceptionHandler(WxErrorExceptionHandler exceptionHandler)
 设置自定义的 WxErrorExceptionHandler如果不调用该方法,默认使用LogExceptionHandler | 
| void | setExecutorService(ExecutorService executorService)
 设置自定义的  ExecutorService如果不调用该方法,默认使用 Executors.newFixedThreadPool(100) | 
| void | setMessageDuplicateChecker(WxMessageDuplicateChecker messageDuplicateChecker)
 设置自定义的  WxMessageDuplicateChecker如果不调用该方法,默认使用WxMessageInMemoryDuplicateChecker | 
| void | setSessionManager(WxSessionManager sessionManager)
 设置自定义的 WxSessionManager如果不调用该方法,默认使用StandardSessionManager | 
| void | shutDownExecutorService()系统退出前,应该调用该方法 | 
| void | shutDownExecutorService(Integer second)系统退出前,应该调用该方法,增加了超时时间检测 | 
public WxCpMessageRouter(WxCpService wxCpService)
wxCpService - the wx cp servicepublic WxCpMessageRouter(WxCpService wxMpService, ExecutorService executorService)
ExecutorService.wxMpService - the wx mp serviceexecutorService - the executor servicepublic void shutDownExecutorService()
public void shutDownExecutorService(Integer second)
second - the secondpublic void setExecutorService(ExecutorService executorService)
 设置自定义的 ExecutorService
 如果不调用该方法,默认使用 Executors.newFixedThreadPool(100)
 executorService - the executor servicepublic void setMessageDuplicateChecker(WxMessageDuplicateChecker messageDuplicateChecker)
设置自定义的WxMessageDuplicateChecker如果不调用该方法,默认使用WxMessageInMemoryDuplicateChecker
messageDuplicateChecker - the message duplicate checkerpublic void setSessionManager(WxSessionManager sessionManager)
设置自定义的WxSessionManager如果不调用该方法,默认使用StandardSessionManager
sessionManager - the session managerpublic void setExceptionHandler(WxErrorExceptionHandler exceptionHandler)
设置自定义的WxErrorExceptionHandler如果不调用该方法,默认使用LogExceptionHandler
exceptionHandler - the exception handlerpublic WxCpMessageRouterRule rule()
public WxCpXmlOutMessage route(WxCpXmlMessage wxMessage, Map<String,Object> context)
wxMessage - the wx messagecontext - the contextpublic WxCpXmlOutMessage route(WxCpXmlMessage wxMessage)
wxMessage - the wx messageprotected boolean isMsgDuplicated(WxCpXmlMessage wxMessage)
Copyright © 2024. All rights reserved.