public class WxMpMessageRouter extends Object
微信消息路由器,通过代码化的配置,把来自微信的消息交给handler处理 说明: 1. 配置路由规则时要按照从细到粗的原则,否则可能消息可能会被提前处理 2. 默认情况下消息只会被处理一次,除非使用WxMpMessageRouterRule.next()3. 规则的结束必须用WxMpMessageRouterRule.end()或者WxMpMessageRouterRule.next(),否则不会生效 使用方法: WxMpMessageRouter router = new WxMpMessageRouter(); router .rule() .msgType("MSG_TYPE").event("EVENT").eventKey("EVENT_KEY").content("CONTENT") .interceptor(interceptor, ...).handler(handler, ...) .end() .rule() // 另外一个匹配规则 .end() ; // 将WxXmlMessage交给消息路由器 router.route(message);
| 限定符和类型 | 字段和说明 |
|---|---|
protected org.slf4j.Logger |
log |
| 构造器和说明 |
|---|
WxMpMessageRouter(WxMpService wxMpService) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected boolean |
isMsgDuplicated(WxMpXmlMessage wxMessage) |
WxMpXmlOutMessage |
route(WxMpXmlMessage wxMessage) |
WxMpXmlOutMessage |
route(WxMpXmlMessage wxMessage,
Map<String,Object> context)
处理微信消息
|
WxMpMessageRouterRule |
rule()
开始一个新的Route规则
|
protected void |
sessionEndAccess(WxMpXmlMessage wxMessage)
对session的访问结束
|
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
|
public WxMpMessageRouter(WxMpService wxMpService)
public void setExecutorService(ExecutorService executorService)
设置自定义的 ExecutorService
如果不调用该方法,默认使用 Executors.newFixedThreadPool(100)
public void setMessageDuplicateChecker(WxMessageDuplicateChecker messageDuplicateChecker)
设置自定义的WxMessageDuplicateChecker如果不调用该方法,默认使用WxMessageInMemoryDuplicateChecker
public void setSessionManager(WxSessionManager sessionManager)
设置自定义的WxSessionManager如果不调用该方法,默认使用StandardSessionManager
public void setExceptionHandler(WxErrorExceptionHandler exceptionHandler)
设置自定义的WxErrorExceptionHandler如果不调用该方法,默认使用LogExceptionHandler
public WxMpMessageRouterRule rule()
public WxMpXmlOutMessage route(WxMpXmlMessage wxMessage, Map<String,Object> context)
public WxMpXmlOutMessage route(WxMpXmlMessage wxMessage)
protected boolean isMsgDuplicated(WxMpXmlMessage wxMessage)
protected void sessionEndAccess(WxMpXmlMessage wxMessage)
Copyright © 2017. All rights reserved.