问题来源:http://www.zhihu.com/question/22685171
当我们在做微信公众号开发的时候,微信官方有个蛋疼的东西就是
情景假设:
我们发送消息给微信,微信发送消息给我们的服务器,服务器处理,但是这个处理时间很长,那么微信在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
其实这样有个好处,就是假设出现网络丢包现象,微信这个方式就能很好的处理这个问题,但是这样也加大了我们开发者的工作任务
----------------------以下方法仅适合服务号和企业号,因为普通订阅号不支持(主动发送消息的)高级接口----------------------
方法其实和Aloong说的一样,其实就是先回复一个空白的数据,微信会认为服务器接收到这个这次数据,所以不会再进行消息传递
回复完成之后然后调用微信的高级接口,回复一个自定义数据即可
高级接口貌似只能服务号和企业号使用
需要注意的是response.getWriter()的结果需要及时的关闭,关闭之后再进行耗时操作才是真正的反馈回去了,不然这个(空白)消息是没有反馈回去的
大致流程:
1.取得writer()
2.取得request中的数据放入map中--
3.关闭writer
4.使用map中的数据,进行耗时操作
5.通过高级接口发送数据
李一峰的回复说的也是对的,我正在想怎么按照他的方法搞一搞,这样就不必使用高级接口了
解决方案:http://blog.csdn.net/langren1353464539/article/details/49898067
朋友的小站推广:http://ntaow.com/bimai.jsp