目前的情况是 : 安卓app给用nodejs搭建的服务器发送注册请求, nodejs负责调用相关的api去向环信注册.
但是环信对api有限流, 所以想做成批量处理, 比如每秒调用一次批量注册的api.
(环信接口限流说明 : http://docs.easemob.com/im/450errorcode/45restastrict)
现在的问题是 首先我不太清楚缓存请求有没有比较好的方法, 其次是针对每个安卓app发来的请求, 都要返回消息告知成功还是失败, 如果缓存了做批量处理的话, 还如何给app返回消息呢?
根据你的描述,由于api请求限流,例如30次/秒,可以使用javascript 的 setInterval方法,每隔 34ms 发送一次请求,请求可写在回调函数中。
也可每隔1秒批量发送30个请求,具体性能自己测试可得。
对于api请求的调用,推荐使用 fetch 这一javascript语法,它是由封装Promise实现的,
在then方法中实现回调函数,即返回客户端告知成功失败与否。(也可使用 request 等库)
对于批量发送请求,即 nodejs 异步事件队列的请求实现,可参考 thenjs库,它实现了对每个数组元素的异步函数实现及回调,或可参考我的两篇
博客(1) (2)
对于缓存请求来说,既然能在回调中实现告知客户端的功能,可能就不需要了,如果要缓存,推荐使用 Redis,若要持久化,则使用MySQL, 具体不再赘述。
以上为本人一点愚见,仅供参考。祝楼主工作顺利。
哦,我帮你顶吧,可惜我也不懂
这种注册你需要当时就返回结果给客户,所以你缓存了的话,就会对用户注册造成影响,用户根本不知道注册成功还是失败。
既然API限流了的话,你可以做的就是当当前注册被限流的话,就返回一个错误信息,告诉客户端,比如当前注册需要等待,请稍候重试等。