想必大家最近的朋友圈和微信群里都被头脑王者PK答题刷屏了吧。确实很好玩,尤其是2018年的这波风口,手机答题,大家掏出手机,创建一个好友PK,然后你的好友点击进来就可以和你一起PK答题。比之前的游戏好玩多了,游戏是纯粹花费时间,但是答题呢,花费时间还能学到东西,增长见识哈。那好吧,我们开始来开发这个了。

难点就是如何做到实时PK答题。我们用到的是小程序的socket编程。大家可以先看看微信小程序的接口文档。

后端呢,我们用到的是gateway worker这个socket通讯。

GatewayWorker2.x 3.x 手册
http://doc2.workerman.net/326102

首先小程序前端使用wx.connectSocket 连接成功socket以后会返回 clientid,我们就是用后端php做clientid绑定,将每次的PK房间号作为一个groupid,存起来,每一个进来的就将他加入到这个组里面去。方便后面做PK答题的答案推送。因为实时PK答题,你自己选好了答案,还要等对方的答案出来,这样你才知道你答对了没有,对方答对了没有。

 Gateway::joinGroup($clientid, $group_id);

绑定成功。然后小程序里的用户发送消息,就是用curl  post消息内容到后端php接口上   。每次你自己选了答案,就post到接口上,然后服务器上做广播,给这个群组的人都广播下另外那个人选的答案是什么。对方拿到别人的答案和自己的答案以后,提交答案,输出自己答对了没有,以及输出对方答对了没有。

一样,不多说,我直接上代码了   向一个群组的所有终端客户推送消息,这样只要前端发送消息,后端就直接拿到内容,推送给所有的终端用户。注意,推送的内容记得使用json编码再推送哦。 把你要推送的答案都存在这个json里就可以了

 Gateway::sendToGroup($groupName=$redisName, $sendDataString);
$ary['groupCount']= Gateway::getClientCountByGroup($groupName);
$ary['groupClientsession']= Gateway::getClientSessionsByGroup($groupName);
$ary['getAllClientCount']= Gateway::getAllClientCount($groupName);

难点就是这些答案如何相互推送,实时抓取,其他的比如比较答案正确什么的,我就不多说了,很简单的,相信你们可以做出来的。另外要啰嗦下,答案你最好存成json格式,方便以后做多选。我们暂时自己做的是单选,还不允许做多选。你只要把答案做成json后面比较答案的正确还是错误就容易多了。

好了,就介绍到这里吧,现在微信PK答题小程序非常火,赶紧你也开始开发一个你自己的答题小程序,邀请你的好友一起来PK答题吧。

我,秋峰,phper,目前自创业,做项目系统开发,php后端加小程序前端结合  今天就给大家分享到这里,希望对大家有所帮助。欢迎交流  大家相互学习 共同提高 我的 微信号:qiufeng2999

头脑王者pk答题小程序开发思路 微信pk答题小程序开发 PK答题游戏你也可以做 微信pk答题游戏的更多相关文章

  1. 微信答题小程序 微信小程序 答题 demo 头脑王者这样的答题小程序开发 答题的微信小程序开发经验 微信答题比赛小程序

    最近随着王思聪的我撒币,我快乐,直播答题非常火.同时知乎的答题小程序头脑王者也非常火爆.大家在微信和微信群里玩的不亦乐乎. 好吧,快乐总是属于你们,我却只能埋头写代码... 公司要求赶紧开发一个这样的 ...

  2. 提取微信小程序“头脑王者”业务逻辑

    产品经理今天让我整理微信小程序"头脑王者"的产品逻辑,花了一天时间在XMind写了写,整理后的内容如图,分享给大家希望大家可以多多点评,互相学习,不知道应该写什么,重要的内容都在图 ...

  3. 微信小程序开发思路

    小程序还没有完全开放,不能真实体验,但通过文档和开发工具,可以了解到他的开发思路 下面就介绍下小程序的开发方式,希望能帮助有兴趣的朋友对整体思路有个快速了解 整体结构 默认示例项目的目录结构 从后缀名 ...

  4. 微信小程序红包开发思路 微信红包小程序开发思路讲解

    之前公司开发小程序红包,将自己在开发的过程中遇到的一些坑分享到了博客里.不少人看了以后,还是不明白怎么开发.也加了我微信咨询.所以今天,我就特意再写一篇文章,这次就不谈我开发中遇到的坑了.就主要给大家 ...

  5. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  6. (转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  7. Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)

    文章目录:                   1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Ap ...

  8. 微信小程序开发系列(一)小程序开发初体验

    开发小程序所需的基本技能   关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领大家快速地学习和掌握小程序的开发. 关于还没有接触过小程序的开发者来说,最关心的问题无非就是,开发小 ...

  9. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包

    公司最近开发的一个微信语音红包,就是前些时间比较火的包你说红包小程序.如何提高识别的精准度呢. 在说精准度之前,先大概说下整个语音识别的开发流程.前面我有文章已经说到过了.具体我就不谈了.一笔带过. ...

随机推荐

  1. Verilog设计分频器(面试必看)

    分频器是指使输出信号频率为输入信号频率整数分之一的电子电路.在许多电子设备中如电子钟.频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种 ...

  2. 重温经典之赫夫曼(Huffman)编码

    先看看赫夫曼树假设有n个权值{w1,w2,…,wn},构造一个有n个叶子结点的二叉树,每个叶子结点权值为wi,则其中带权路径长度WPL最小的二叉树称作赫夫曼树或最优二叉树. 赫夫曼树的构造,赫夫曼最早 ...

  3. BZOJ-1833(数位DP)

    #include <bits/stdc++.h> using namespace std; typedef long long ll; ll a,b; int k[20]; ll dp[2 ...

  4. JWT的使用流程

    JWT的实现原理 一篇文章告诉你JWT的实现原理 发布于 3 个月前 作者 axetroy 3097 次浏览 来自 分享 在使用 JWT 的时候,有没有想过,为什么我们需要 JWT?以及它的工作原理是 ...

  5. Linux下打包解压命令

    tar 压缩: tar -cvjpf etc.tar.bz2 /etc //-c为创建一个打包文件,相应的-f后面接创建的文件的名称,使用了.tar.bz2后缀,-j标志使用bzip2压缩,最后面为具 ...

  6. golang 函数的特殊用法

    1.可以复用一些写法.经常在单元测试过程中需要new一些对象可以new的操作抽离出来 package main import "fmt" type S struct { } fun ...

  7. 什么是python中的元类

    所属网站分类: python高级 > 面向对象 作者:goodbody 原文链接: http://www.pythonheidong.com/blog/article/11/ 来源:python ...

  8. LeetCode(206) Reverse Linked List

    题目 Reverse a singly linked list. click to show more hints. Hint: A linked list can be reversed eithe ...

  9. 如何查看Android apk的包名?

    有以下四种方法可以查看apk的包名,之后有别的方法,会接着更新文档的. 1. 安装APK包名查看器; 2. 源码AndroidManifest.xml中查看package包名; 3. 利用" ...

  10. TTL与COMS的区别

    1.电平的上限和下限定义不一样,CMOS具有更大的抗噪区域. 同是5伏供电的话,ttl一般是1.7V和3.5V的样子,CMOS一般是  2.2V,2.9V的样子,不准确,仅供参考. 2.电流驱动能力不 ...