微信答題小程序 微信小程序 答題 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM