微信服务器之三次数据传递,排重的问题

来源:互联网 发布:linux网络工程师 编辑:程序博客网 时间:2024/05/16 13:42

问题来源:http://www.zhihu.com/question/22685171

当我们在做微信公众号开发的时候,微信官方有个蛋疼的东西就是


情景假设:

我们发送消息给微信,微信发送消息给我们的服务器,服务器处理,但是这个处理时间很长,那么微信在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次

其实这样有个好处,就是假设出现网络丢包现象,微信这个方式就能很好的处理这个问题,但是这样也加大了我们开发者的工作任务

----------------------以下方法仅适合服务号和企业号,因为普通订阅号不支持(主动发送消息的)高级接口----------------------

方法其实和Aloong说的一样,其实就是先回复一个空白的数据,微信会认为服务器接收到这个这次数据,所以不会再进行消息传递

回复完成之后然后调用微信的高级接口,回复一个自定义数据即可

高级接口貌似只能服务号和企业号使用

需要注意的是response.getWriter()的结果需要及时的关闭,关闭之后再进行耗时操作才是真正的反馈回去了,不然这个(空白)消息是没有反馈回去的

大致流程:

1.取得writer()

2.取得request中的数据放入map中--

3.关闭writer

4.使用map中的数据,进行耗时操作

5.通过高级接口发送数据


李一峰的回复说的也是对的,我正在想怎么按照他的方法搞一搞,这样就不必使用高级接口了

0 0