2012-02-19 518 views
2

我要爲Android打造的遊戲,這個遊戲有多人模式,所以應該發昂從服務器獲取一些數據。服務器爲Android遊戲

讓我們假設5名玩家都在玩這個遊戲。 輪到他的每個玩家發送一個單詞給服務器,服務器檢查這個單詞是否正確,然後服務器將這個單詞發送給其他玩家。

而且服務器具有某種定時器,當次熄滅它發送給所有玩家,然後時間到了。

很簡單。

現在我的問題是什麼。我從來沒有做過網絡編程,我不知道如何實現服務器端。谷歌紅粉好幾個選項:

  • HTTP服務器
  • 套接字服務器

我應該用什麼?其中一個選項或其他東西? 什麼框架/庫可以有助於implimentation?我更喜歡python(如CherryPy,如果http服務器適合我的purpouses),但我也可以在java或C++上完成。或PHP的(但我不希望使用它)

更新

思考我用python的TCP套接字服務器過了一會兒。這似乎是我的需求最輕量級的解決方案。而且從Java進行交互也很容易。

回答

1

考慮使用Twisted Python和使用持久推出自己的簡單協議連接。

或者,使用諸如Apache或nginx的和WSGI正常HTTP(S)服務器在你的Python後端邏輯打結。爲了使它看起來好像你有一個持久連接(用於通知所有提交的「單詞」或計時器到期),你需要使用類似AJAX的東西。

+0

如果你要做到這一點通過HTTP,你將需要處理推送你的應用程序的一部分如果您建立自己的協議,在初次連接後維護與每個播放器的開放連接,則可以直接通知他們。如果你通過http來完成,你需要使用類似AJAX的東西來提供連接保持打開狀態的錯覺。另外,如果你打算做HTTP/AJAX,使用Apache或者nginx和wsgi作爲它後面的python應用可能會更簡單。 – gfortune 2012-02-19 22:01:04

+0

And android是否有工具來開發與我自己的協議溝通? – 2012-02-19 22:07:03

+0

我相信Twisted可以在ASE中使用(http://code.google.com/p/android-scripting/),所以你也可以用Python編寫你的客戶端。如果你用Python編寫客戶端,你會抽象出你的協議邏輯(基本上是如何序列化和反序列化),並在服務器和客戶端上使用該代碼。如果你通過http/ajax來實現,我希望這些東西可以在標準的android安裝中使用。這就是說,我的回答是針對服務器端的東西,我沒有太多的android開發工作經驗。 – gfortune 2012-02-19 22:13:45

1

你有沒有考慮過使用解析?

https://parse.com/

另一個很好的選擇,我喜歡的是的NodeJS,但是你會得到很多的相同的好處,比如異步併發的龍捲風(Python)的

+2

據我瞭解分析是用於存儲和retriving數據,但使用它,我無法實現遊戲邏輯。我需要檢查服務器端的單詞是否正確。關於我的NodeJS得看我多一點,也許它可以幫助我 – 2012-02-19 21:30:19

+0

@RomanSilakov你可以使用雲計算的代碼現在做遊戲邏輯 – chrs 2014-12-29 00:16:06