贏三張H5(PHP+Egret+Websocket) 原

簡介

前陣子公司說準備試一試h5,於是我決定研究一下,而對於像我這種沒有客戶端經驗的來說,選擇一款入門簡單的h5框架,能省不少事。當時毫不猶豫的就選擇了egret(別問我爲什麼,我也不知道),把整個文檔簡單過了一遍之後,就擼起袖子準備搞事,決定做一款贏三張H5來練練手,於是好戲就這麼開場了。。

不知道有沒有人玩過皮皮麻將,這個跟他玩法基本一致,自己先開房間,然後邀請別人來比賽,每個房間固定能玩5局,最終結算積分,下面先貼一下游戲截圖,注:很多資源都是從歡樂贏三張APP裏面借(chao)鑑(xi)的。

 

項目介紹

項目地址:http://git.oschina.net/scgywx/threecard

演示地址(用微信打開效果更佳哦):http://three.phporz.com

客戶端使用egret框架,語言使用ts(js的超集),最終都會生成爲js,而服務端則是使用php,服務端框架是yaf(鳥哥出品),協議使用websocket,網關使用fooking。

client //客戶端源代碼
   libs //egret的庫文件
   bin-debug  //debug版本代碼
   bin-release  //release版本代碼,發佈的時候需要從這個目錄copy文件
   resource //資源文件,包括圖片和skin(這個目錄是經過tm合併過的文件)
   resource-all //這個是資源文件沒有經過tm合併的
   src //這就是源代碼了
   index.html //入口文件(這個文件發佈後會命名爲game.html)

web //網頁相關
   api //遊戲相關http的api,如登錄、服務器信息等
       api.php //api統一入口文件
   game //遊戲客戶端目錄
       libs //egret庫文件
       resource //資源文件
       game.html //遊戲頁面
       index.html //入口頁面(這個頁面會根據不同版本跳轉,防止客戶端cache)
       main.min.js //整個遊戲邏輯代碼
       version.js //game.html文件的版本號

server //服務端代碼
   config //配置文件
   controllers //控制器
   crontab //定時器,主要用於處理斷開連接的玩家
   library //庫文件
   models //具體邏輯
   protocol //協議部分

tools //工具
   release.php //發佈版本的時候,需要執行這裏,會複製client/bin-release/web/v1目錄下的文件,並且處理版本號

 

客戶端配置

只需要使用nginx或者apache,將目錄指向web/game目錄即可

 

API配置

需要支持php環境,然後將目錄指向web/api目錄即可。如果api的域名不是127.0.0.1,可以在web/game/game.html中修改API_SERVER。

 

服務端配置

服務端部分使用php,那麼跟客戶端交互使用fooking來維護長連接,所以必須要需要先架設fooking,這裏就不詳細講了,感興趣的朋友可以點擊這裏,然後將目錄指向server即可,配置端口號9005.  
服務端還需要使用redis,用來保存遊戲信息(同時別忘了php要安裝phpredis擴展哦),然後配置有兩個地方,一個是server/config/redis.php,另一個是web/api/api/include/config.inc.php。

 

結語

這是我初學egret練手項目,難免有些地方處理欠妥,如果有入不了法眼的地方,望輕噴。同時還希望各位能提供更好的建議和意見。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章