微信答题小程序 微信小程序 答题 demo 头脑王者这样的答题小程序开发 答题的微信小程序开发经验 微信答题比赛小程序
最近随着王思聪的我撒币,我快乐,直播答题非常火。同时知乎的答题小程序头脑王者也非常火爆。大家在微信和微信群里玩的不亦乐乎。
好吧,快乐总是属于你们,我却只能埋头写代码。。。
公司要求赶紧开发一个这样的答题小程序出来,于是参考了几大现在已经有的答题系统,我们开始了,属于我自己的答题小程序开发之路。
先说几个难点,第一个是直播答题,做聊天室的。如何让用户在聊天室里聊天,做直播答题,大家看到,每个人都可以在里面聊天。我们传统的聊天室大部分用的ajax做轮询,考虑到用户数大的话,轮询对服务器压力还是蛮大的,于是我们放弃了使用ajax轮询的方式来做聊天室。采用的是Gateway worker来做的 具体你们可以看他的手册哈。
GatewayWorker2.x 3.x 手册
http://doc2.workerman.net/326102
首先小程序前端使用wx.connectSocket 连接成功socket以后会返回 clientid,我们就是用后端php做clientid绑定,将每场直播答题考试的会场号作为一个群组,
Gateway::joinGroup($clientid, $group_id);
绑定成功。然后小程序里的用户发送消息,就是用curl post消息内容到后端php接口上
一样,不多说,我直接上代码了 向一个群组的所有终端客户推送消息,这样只要前端发送消息,后端就直接拿到内容,推送给所有的终端用户。注意,推送的内容记得使用json编码再推送哦。
Gateway::sendToGroup($groupName=$redisName, $sendDataString);
$ary['groupCount']= Gateway::getClientCountByGroup($groupName);
$ary['groupClientsession']= Gateway::getClientSessionsByGroup($groupName);
$ary['getAllClientCount']= Gateway::getAllClientCount($groupName);
好吧,这些算是把聊天室的做完了。接着就开始做双方PK的了,PK答题,如何找到匹配对手,还记得之前说的clientid吗? 把当前激活的有效的clientid保存起来,然后给他们两两配对,给他们推送答题,也是用到webscoket,推送给他们两个人,然后同时还是答题,答题结束后将他们的题目同时用curl 方式 post到接口上,接口来计算他们的最后成绩,然后返回给他们。又要用到webscoket来做推送了。
好了,就介绍到这里吧,现在答题小程序非常火,赶紧你也开始开发一个你自己的答题小程序吧。
我,秋峰,phper,目前自创业,做项目系统开发,php后端加小程序前端结合 今天就给大家分享到这里,希望对大家有所帮助。欢迎交流 大家相互学习 共同提高 我的 微信号:qiufeng2999
微信答题小程序 微信小程序 答题 demo 头脑王者这样的答题小程序开发 答题的微信小程序开发经验 微信答题比赛小程序的更多相关文章
- Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- 头脑王者pk答题小程序开发思路 微信pk答题小程序开发 PK答题游戏你也可以做 微信pk答题游戏
想必大家最近的朋友圈和微信群里都被头脑王者PK答题刷屏了吧.确实很好玩,尤其是2018年的这波风口,手机答题,大家掏出手机,创建一个好友PK,然后你的好友点击进来就可以和你一起PK答题.比之前的游戏好 ...
- 提取微信小程序“头脑王者”业务逻辑
产品经理今天让我整理微信小程序"头脑王者"的产品逻辑,花了一天时间在XMind写了写,整理后的内容如图,分享给大家希望大家可以多多点评,互相学习,不知道应该写什么,重要的内容都在图 ...
- 类似微信聊天小程序-网易云信,IM DEMO小程序版本
类似微信聊天小程序-网易云信,IM DEMO小程序版本 代码地址: https://github.com/netease-im/NIM_Web_Weapp_Demo 云信IM DEMO 小程序版本 ( ...
- 微信小程序初探(二):阅读官方demo源码
阅读demo有助于理解逻辑,而且demo源码中应该包含了框架开发人员想要表达的意思的精华,先从app.js着手来阅读. 附带贴下说明: https://mp.weixin.qq.com/debug/w ...
随机推荐
- 使用EventLog组件向本机现有日志中添加条目
实现效果: 知识运用: EventLog组件的MachineName属性 //获取或设置在其上读取或写入事件的计算机名称 public string MachineName {get;set; } ...
- Silverlight日记:动态操作Grid
一,动态生成Grid public static Grid CreateGrid(List<T_METER> List) { var g = new Grid(); if (null == ...
- 标准C++(1)
一.引用 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 例: int& num; 引用类似于起别名 注 ...
- Voyager下的Media Manager文件管理与Menu Builder
Media Manager 默认存储位置在storage/app/public 上传文件,新建文件夹,移动,重命名,删除等等等功能 Menu Builder 创建新的Main菜单 创建一个shop菜单 ...
- 图解一致性协议2PC和3PC
原图地址:https://www.processon.com/diagraming/5b89f6ace4b0d4d65bf10786
- str 方法总结整理
#!/usr/bin/env python #Python 3.7.0 字符串常用方法 __author__ = "lrtao2010" #capitalize 将字符串的首字符改 ...
- drf 解析器,响应器,路由控制
解析器 作用: 根据请求头 content-type 选择对应的解析器对请求体内容进行处理. 有application/json,x-www-form-urlencoded,form-data等格式 ...
- leetcode-23-DynamicProgramming-1
357. Count Numbers with Unique Digits 解题思路: 用arr[i]存放长度为i时,各位互不相同的数字的个数,所以arr[1]=10,arr[2]=9*9.(第一位要 ...
- phpmyadmin提示The mbstring extension is missing的解决方法
解决办法:安装php-mbstring yum install php-mbstring
- poj 2251 三维地图最短路径问题 bfs算法
题意:给你一个三维地图,然后让你走出去,找到最短路径. 思路:bfs 每个坐标的表示为 x,y,z并且每个点都需要加上时间 t struct node{ int x, y, z; int t;}; b ...