2016-07-21 91 views
0

幾年前,我開始做我自己的網頁遊戲,在原PHP有一些JavaScript。就是這樣。但時代已經改變,並且自從多年前遊戲發佈以來,移動開發變得越來越重要。現在我想將我的遊戲從原始的,自寫的PHP翻譯成更穩定的版本,並且我希望將它作爲原生應用程序提供給移動設備。有兩件重要的事情我想改變爲我的遊戲:如何高效地進行網絡和移動遊戲與Laravel

  • 我目前正在將遊戲從原始PHP轉換到Laravel 5框架。這樣我就不再需要自己編寫關於認證的所有代碼等等。我想爲實時數據實現socket.io(並且我正在考慮AngularJS的單頁體驗,但我還不確定)。
  • 而且,我想創建一個移動體驗:遊戲應該是可玩的移動設備上。我已經開始爲它使用Unity3D了。

這兩個版本(網頁和手機)都應該調用一個處理所有CRUD和安全檢查的API。但是,我遇到了一個問題:我想保存自己的工作,所以我想盡可能少寫網頁版和移動版的重複代碼。我希望webfront-end和Unity遊戲都可以使用相同的API進行通信。

讓我們有一個例子:我有一個http://api.example.com/?check=login& ...來檢查,如果正確的用戶憑據中給出。我認爲這是用Lumen(Laravel的孩子)製作這個API的好方法。那麼,我知道如何將這個請求從Unity發送到api。但是我如何在Laravel webversion中執行此操作?我的意思是,Laravel Web版本應該連接到api,否則我必須重寫web和移動設備的logincheck,而不是一箇中心位置。還是有更好的選擇?我有點厭倦了所有的信息和可能的事情,所以我希望你能做出一些更明確的:)

所以,總結一下我的問題,使其不會過於寬泛:

  • 1)我是一名爲網絡和移動開發的新手:我是否正確地思考?
  • 2)如果它是可能的:什麼是一個代碼庫(/ API)與Web和移動版本都進行交互的最佳方式?我應該使用一個獨立的api.example.com域來處理所有事情。或者手機遊戲能否與普通的Laravel應用程序通信?

我真的希望你能幫助我,或者請讓我知道,如果有什麼不清楚。

+0

我會使用REST風格來編碼api並將數據作爲Json傳遞並進行身份驗證我將使用令牌身份驗證。看看這個教程laravel .: https://gistlog.co/JacobBennett/090369fbab0b31130b51 – Nyranith

回答

0

您可以爲您的網頁版和移動版擁有相同的API,並使用JSON Web Tokens進行身份驗證 - 這樣您就不必通過Cookie和其他瀏覽器鎖定機制來管理用戶狀態,這使得難以協調移動平臺和網絡。

所以遊戲和瀏覽器可以正常使用Laravel應用程序在你的API,如果你去了智威湯遜的路線進行通信。

還有Dingo你可以使用你的API,也可以使用a nice JWT wrapper Laravel本身使用Dingo。我已經將它用於生產中,與ReactJS在SPA中效果很好。

很難回答不知道的一切喲正在努力實現的,和你的遊戲的細節 - 希望幫助!

+0

非常感謝!另一個問題:如果我想讓API在Lumen上運行,那麼該怎麼辦?我也可以使用Dingo嗎? – Jordy

+0

是的,Dingo也和Lumen一起工作。根據[描述](https://github.com/dingo/api),他們稱之爲* Laravel和Lumen框架的RESTful API包* – Theson

+0

我的意思是我在Laravel的主應用程序和Lumen中的API。同時。 – Jordy