2011-03-04 120 views
1

我目前正在開發一款適用於Android的多人紙牌遊戲,並以Google App Engine作爲我的後端。 我想知道應該使用哪種協議來與服務器,UDP或TCP進行Android客戶端通信? 我知道他們之間的「幹」差異,但我不確定在這種情況下適合我的是什麼。遊戲將包含幾個(10+)房間,每個房間可以容納4-6名玩家。開發Android的在線紙牌遊戲

+1

如果您使用App Engine,則必須使用HTTP(顯然,通過TCP)。 – 2011-03-04 08:31:58

回答

0

如果你希望它在大多數情況下最好的使用HTTP和JSON。你更可能確定你的用戶流量將通過提供商代理等。

我會遠離UDP遠距離。無法保證UDP數據包實際傳送到客戶端或服務器,並且您甚至不知道它們丟失了。 UDP的唯一理由是如果你正在開發一個每個人都在同一個網絡上的遊戲。但是,你可能只是一起刮掉TCP,然後隨藍牙一起去。

0

使用Google App Engine,您只能與HTTP/HTTPS通信,不允許UDP/TCP套接字通信。

2

您應該確保Google App Engine支持您希望使用的所有內容。有幾種方法可以解決這個問題,有些選項在GAE上不可用。你提到你需要幾個不同的遊戲室,我想你希望它是實時的。 Google App Engine對線程和套接字服務器等內容有一些限制。這些限制可能會使這種類型的應用程序很難以有效的方式執行(不使用「輪詢」)。

有辦法解決這個喜歡使用谷歌的通道API:http://code.google.com/appengine/docs/java/channel/

的API看起來相當不錯,但它會限制你的主機選項,只有谷歌應用程序引擎,它並沒有那麼糟糕,我想和你隨後可以隨時重寫您的應用程序的這一部分。