From 4ecf2c47646bd7397e87a12b7d6449a00f105dad Mon Sep 17 00:00:00 2001 From: jinyu Date: Sat, 7 May 2016 11:15:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E8=A6=81=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E5=9B=9E=E5=A4=8D=E7=9B=B8=E5=85=B3=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Weixin4jServerStartupWithoutThread.java | 3 - .../server/handler/HelloMessageHandler.java | 4 + weixin4j-server/CHANGE.md | 2 +- .../dispatcher/WeixinMessageDispatcher.java | 2 +- .../weixin4j/response/MultipleResponse.java | 85 ------------------- .../socket/MultipleResponseEncoder.java | 32 ------- .../socket/WeixinServerInitializer.java | 1 - 7 files changed, 6 insertions(+), 123 deletions(-) delete mode 100644 weixin4j-server/src/main/java/com/foxinmy/weixin4j/response/MultipleResponse.java delete mode 100644 weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/MultipleResponseEncoder.java diff --git a/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/Weixin4jServerStartupWithoutThread.java b/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/Weixin4jServerStartupWithoutThread.java index 6e2c4bc0..e0d6d084 100644 --- a/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/Weixin4jServerStartupWithoutThread.java +++ b/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/Weixin4jServerStartupWithoutThread.java @@ -38,11 +38,8 @@ public class Weixin4jServerStartupWithoutThread { * @throws WeixinException */ public static void main(String[] args) throws WeixinException { - //ApplicationContext applicationContext = new ClassPathXmlApplicationContext( - // new String[] { "classpath:/spring-bean.xml" }); new WeixinServerBootstrap(aesToken) .handlerPackagesToScan(handlerPackage).openAlwaysResponse() - //.resolveBeanFactory(new SpringBeanFactory(applicationContext)) .startup(port); } } diff --git a/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/handler/HelloMessageHandler.java b/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/handler/HelloMessageHandler.java index e74aeeef..20ecd5ae 100644 --- a/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/handler/HelloMessageHandler.java +++ b/weixin4j-example/src/main/java/com/foximy/weixin4j/example/server/handler/HelloMessageHandler.java @@ -20,9 +20,13 @@ import com.foxinmy.weixin4j.response.WeixinResponse; */ @Component public class HelloMessageHandler extends MessageHandlerAdapter { + @Override public boolean canHandle0(WeixinRequest request, TextMessage message) throws WeixinException { + /** + * 用户输入hello时 + */ return message.getContent().equalsIgnoreCase("hello"); } diff --git a/weixin4j-server/CHANGE.md b/weixin4j-server/CHANGE.md index e6841d60..1aa2122d 100644 --- a/weixin4j-server/CHANGE.md +++ b/weixin4j-server/CHANGE.md @@ -141,4 +141,4 @@ + 修改ClassUtil获取class不到的bug - + 新增MultipleMessageHandlerAdapter多个消息适配类 \ No newline at end of file + + ~~新增MultipleMessageHandlerAdapter多个消息适配类~~ \ No newline at end of file diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java index 0c0bea83..b2760169 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/dispatcher/WeixinMessageDispatcher.java @@ -143,7 +143,7 @@ public class WeixinMessageDispatcher { response = handlerExecutor.getMessageHandler().doHandle(request, message, messageTransfer.getNodeNames()); handlerExecutor.applyPostHandle(request, response, message); - context.write(response); + context.writeAndFlush(response); } catch (Exception e) { exception = e; } diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/response/MultipleResponse.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/response/MultipleResponse.java deleted file mode 100644 index f59cf6e7..00000000 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/response/MultipleResponse.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.foxinmy.weixin4j.response; - -import java.util.Arrays; -import java.util.List; - -/** - * 多个消息回复 - * - * @className MultipleResponse - * @author jy - * @date 2016年4月27日 - * @since JDK 1.6 - * @see - */ -public class MultipleResponse implements WeixinResponse { - - private List responses; - - public MultipleResponse(WeixinResponse... responses) { - if (responses == null) { - throw new IllegalArgumentException("responses not be empty"); - } - this.responses = Arrays.asList(responses); - } - - @Override - public String getMsgType() { - return "multiple"; - } - - /** - * 插入首条回复 - * - * @param response - */ - public void addFirstResponse(WeixinResponse response) { - responses.add(0, response); - } - - /** - * 移除首条回复 - * - * @return 移除的回复 - */ - public WeixinResponse removeFirstResponse() { - return responses.remove(0); - } - - /** - * 插入末条回复 - * - * @param response - */ - public void addLastResponse(WeixinResponse response) { - responses.add(response); - } - - /** - * 移除末条回复 - * - * @return 移除的回复 - */ - public WeixinResponse removeLastResponse() { - return responses.remove(responses.size() - 1); - } - - /** - * 获取所有的回复 - * - * @return - */ - public List getResponses() { - return this.responses; - } - - @Override - public String toContent() { - return null; - } - - @Override - public String toString() { - return "MultipleResponse [responses=" + responses + "]"; - } -} diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/MultipleResponseEncoder.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/MultipleResponseEncoder.java deleted file mode 100644 index 01282296..00000000 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/MultipleResponseEncoder.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.foxinmy.weixin4j.socket; - -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.MessageToMessageEncoder; - -import java.util.List; - -import com.foxinmy.weixin4j.response.MultipleResponse; -import com.foxinmy.weixin4j.response.WeixinResponse; - -/** - * 微信多个回复编码类 - * - * @className WeixinResponseEncoder - * @author jy - * @date 2016年4月27日 - * @since JDK 1.6 - * @see 加密接入指引 - * @see com.foxinmy.weixin4j.response.MultipleResponse - */ -public class MultipleResponseEncoder extends - MessageToMessageEncoder { - - @Override - protected void encode(ChannelHandlerContext ctx, MultipleResponse response, - List out) throws Exception { - for (WeixinResponse r : response.getResponses()) { - ctx.writeAndFlush(r); - } - } -} diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/WeixinServerInitializer.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/WeixinServerInitializer.java index 3118031b..1fef2fa7 100644 --- a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/WeixinServerInitializer.java +++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/socket/WeixinServerInitializer.java @@ -39,7 +39,6 @@ public class WeixinServerInitializer extends ChannelInitializer { pipeline.addLast(new WeixinMessageDecoder(aesTokenMap)); pipeline.addLast(new WeixinResponseEncoder()); pipeline.addLast(new SingleResponseEncoder()); - pipeline.addLast(new MultipleResponseEncoder()); pipeline.addLast(new WeixinRequestHandler(messageDispatcher)); } }