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

1 篇文章 0 订阅
1 篇文章 0 订阅

这是我第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连接

小程序端关键代码:

let ws = new WebSocket("ws://localhost:8080");
ws.onopen = function() {
  console.log("client:打开连接");
  ws.send("client:hello,服务端");
};
ws.onmessage = function(e) {
  console.log("client:接收到服务端的消息 " + e.data);
  setTimeout(() => {
    ws.close();
  }, 5000);
};
ws.onclose = function(params) {
  console.log("client:关闭连接");
};

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值