当前位置:   article > 正文

第7次版本迭代的微信答题小程序完美上线_微信小程序答题

微信小程序答题

这是我第7次上线答题小程序后更新博文。

小程序主要包含八大版块,在之前的版本上增加了好友对战功能。对小程序感兴趣可在微信小程序搜索  “嗨答答 安全知识挑战赛”  体验,或者邮件我咨询细节,我的邮箱是 371464516@qq.com。

(一)挑战赛(拼速度、拼知识量)

系统自动匹配在线对手,每场比赛共5题,10秒内选出你认为正确的唯一选项。比赛双方按规则获取相应积分。如果系统在5秒内未匹配到在线用户,则随机从已有答题记录中选择一次答题进行模拟对战。

(二)闭关修炼

每场练习共5题(系统从各类题库中随机选择,或者指定某一类题库练习),10秒内选出答案,每道题选择后显示正确答案。如果选择错误,那系统暂停3秒再进入下一题,暂停是为了让学习者记住答案。

(三)好友对战

进入好友对战页,点击右上角分享给好友参与挑战。

(四)错题本

 对答题过程中的错误题目进行回顾。

(五)排行榜
可按用户全员排名,按队伍排名。

(六)我的荣誉

展示个人信息,展示答题情况。

(七)道具助力得积分

查看相关视频,学习政策法规。

(八)锦囊赠送

每局答题后获得答题次数,双倍积分或者直接显示答案的功能。

后期产品优化思路:

     1、对机器人刷题的情况要提供阻止方案,对恶意参与比赛的情况要有控制方案。

     2、用户答题数据做每日备份。

技术实现方案:

框架:JAVA+SPRINGBOOT+WEBSOCKET+MYSQL

本次重点加强的缓存处理,消息机制,提高系统横向扩充能力,增大用户使用量。

1、为解决数据库读瓶颈问题,下一步系统将支持MYSQL读写分离。

2、大量用户访问存在瓶颈,使用集群架构方案,当前架构继续优化。

socket技术升级,支持断线重连,基本思路:

1 全局维护一个SocketTask对象,用来表示websocket连接,小程序onShow时判断是否断线,是否需要重连

2 同时定义一个全局的回调函数callback回调函数,每个页面初始化的时候更新这个回调函数,那么每个页面中收到的返回信息就会执行当前页面逻辑

3 维护一个消息队列,所有的消息请求会首先判断连接是否可用,可用直接send,不可用将消息push到这个队列中。

4 在app.js的onShow函数中判断连接是否连上,如果没有连上就会触发websocket连接

5 SocketTask对象的onOpen()负责从消息队列中取出请求消息,并发送这个请求消息

6 SocketTask对象的onMessage() 负责接收返回消息。并调用每个页面自己定义的回调函数

7 SocketTask对象的onClose() 监听函数中,触发websocket连接

小程序端关键代码:

  1. let ws = new WebSocket("ws://localhost:8080");
  2. ws.onopen = function() {
  3. console.log("client:打开连接");
  4. ws.send("client:hello,服务端");
  5. };
  6. ws.onmessage = function(e) {
  7. console.log("client:接收到服务端的消息 " + e.data);
  8. setTimeout(() => {
  9. ws.close();
  10. }, 5000);
  11. };
  12. ws.onclose = function(params) {
  13. console.log("client:关闭连接");
  14. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/621093
推荐阅读
相关标签
  

闽ICP备14008679号