1. 程式人生 > >微信答題小程序 微信小程序 答題 demo 頭腦王者這樣的答題小程序開發 答題的微信小程序開發經驗 微信答題比賽小程序

微信答題小程序 微信小程序 答題 demo 頭腦王者這樣的答題小程序開發 答題的微信小程序開發經驗 微信答題比賽小程序

ng2 end 傳統 pos ssi pre 微信小程序開發 get 連接

最近隨著王思聰的我撒幣,我快樂,直播答題非常火。同時知乎的答題小程序頭腦王者也非常火爆。大家在微信和微信群裏玩的不亦樂乎。

好吧,快樂總是屬於你們,我卻只能埋頭寫代碼。。。

公司要求趕緊開發一個這樣的答題小程序出來,於是參考了幾大現在已經有的答題系統,我們開始了,屬於我自己的答題小程序開發之路。

先說幾個難點,第一個是直播答題,做聊天室的。如何讓用戶在聊天室裏聊天,做直播答題,大家看到,每個人都可以在裏面聊天。我們傳統的聊天室大部分用的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後端加小程序前端結合 今天就給大家分享到這裏,希望對大家有所幫助。歡迎交流 大家相互學習 共同提高 我的 微信號:qiufeng2983

微信答題小程序 微信小程序 答題 demo 頭腦王者這樣的答題小程序開發 答題的微信小程序開發經驗 微信答題比賽小程序