2011-03-04 6 views
1

현재 Google App Engine을 사용중인 Android 용 멀티 플레이어 카드 게임을 백 엔드로 개발 중입니다. 서버, UDP 또는 TCP와 안드로이드 클라이언트를 통신하는 데 어떤 프로토콜을 사용해야하는지 알고 싶습니다. 나는 그들 사이의 "건조한"차이점을 알고 있지만이 경우에 나를 위해 무엇이 적절한 것인지 잘 모르겠습니다. 게임은 4-6 명의 플레이어를 채울 수있는 여러 (10+) 개의 방으로 구성됩니다.android 용 온라인 카드 게임 개발

+1

App Engine을 사용하는 경우 HTTP를 사용해야합니다 (분명히 TCP를 통해). –

답변

0

대부분의 경우 JSON과 함께 HTTP를 사용하는 것이 가장 좋습니다. 사용자 트래픽이 제공자 프록시 등을 통과 할 가능성이 더 높습니다.

장거리에서는 UDP를 멀리 할 것입니다. UDP 패킷이 실제로 클라이언트 나 서버에 전달 될 것이라는 보장은 없으며 잃어 버렸음을 알지도 못합니다. UDP를위한 유일한 합리적인 경우는 모두가 같은 네트워크에있는 게임을 개발하는 경우입니다. 그런 다음 TCP를 모두 함께 긁어서 Bluetooth 만 사용하면됩니다.

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를 꽤 좋아 보인다을하지만 내 생각 그렇게 나쁘지 않습니다 만 구글 앱 엔진에 호스팅 옵션을 제한하고 나중에 언제든지 앱의 해당 부분을 다시 작성할 수 있습니다.