微信服务器发送多次同一请求时,怎么样处理

移动开发 码拜 4年前 (2016-03-31) 556次浏览
        微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。
此时,例如本人需要在用户点击关注时录入用户信息到数据库,这时微信TMD给本人录入三次,后面本人还在录入时进行了被关注自动回复(是自动回复一个图文消息)。可能是原因是多次请求相互干扰,控制台会抱错:
微信服务器发送多次同一请求时,怎么样处理
本人试过排重,在网上找的。
1.写个class A包括三个字段,msgid(用户判断普通消息),FromUserName + CreateTime(用户判断事件消息);
2.创建一个静态变量list 用来缓存A对象;
3.当有微信推送过来消息时,new一个A对象:1)假如普通消息一定会有msgid赋值给A实例;2)假如是事件消息则把fromusername和createTime属性赋值给A实例;
4.每当有微信推送消息过来,判断缓存中能否包含该A的对象,假如包含说明是重复的消息;假如不包含说明不重复并且把该A对象放入缓存。
按照网上的方法写出来后……效果不近人意,本人严重怀疑本人的理解能力了!
本人在是第4步判断时,假如重复了直接给微信返回了一个空符串,这时原因是微信发起请求总共重试3次,本人在第2次给微信返回了一个空的字符串,控制台同样会报错,而且同样也是“您的主机中止了一个已建立的连接”.
本人想了想,觉得可能是前面的一次请求未完成,第二次请求又来了,而且还把本方法已经运行完了,导致前面的请求中断。
苦恼了一天,网上也没找到个满意的答案,第一次开发微信,烦!
本人想开发过微信的人都遇到过这样的问题吧?怎么就找不到满意的回复呢?
有高手吗?跪求!求语言精辟易懂,本人是真的怀疑本人的理解能力严重不行了!
解决方案

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明微信服务器发送多次同一请求时,怎么样处理
喜欢 (0)
[1034331897@qq.com]
分享 (0)