2010-01-23 4 views
21

저는 GAE를 사용하여 멀티 플레이어 게임을 제작할 생각입니다. A 플레이어가 움직이면 세부 정보를 기록한 다음 B 플레이어에게 이동 사실을 알려주고 싶습니다.GAE가 XMPP 서버로 작동 할 수 있습니까?

내 클라이언트에 공개 소스 XMPP 라이브러리가 생겨서 가능하면 내 앱에 알릴 수 있다고 생각 했나요? 나는 플레이어가 google talk와 같은 서비스에 가입하도록 강요하고 싶지 않으므로 세션 ID를 기반으로 즉석에서 jid를 생성합니다.

당신의 의견을 듣고 싶습니다! 그래서 API에 의해 제한됩니다 일 - 당신이 열려있는 소켓을 할 수 없기 때문에 당신은 당신의 GAE를 만들 수있게 될 수 없습니다

감사

답변

9

는 XMPP 서버 응용 프로그램.

그러나 원하는 작업을 수행하기 위해 xmpp 서버를 실행할 필요는 없습니다. appengine API에서 사용할 수있는 XMPP 라이브러리를 사용하여 게임 '클라이언트'가 파이썬 API를 여기에서 볼 수있는 클라이언트 인 앱을 클라이언트로 만들 수 있습니다 : http://code.google.com/appengine/docs/python/xmpp/. 모든 게임 클라이언트가 클라이언트를 퀘스트 할 필요는 없지만 대부분의 사람들이 할 수있을 것이라고 생각하는 gtalk에 연결할 수 있어야합니다.

여기에 간단한 예제가있다 : http://code.google.com/appengine/articles/using_xmpp.html

+6

이 예에서는 사용자가 이미 xmpp 클라이언트와 ID를 가지고 있다고 가정합니다. 나는 OP가이 가정없이 작동하기를 원한다고 생각합니다. 게임 자체가 클라이언트가되어 익명의 ID를 생성합니다. 그 시나리오도 효과가 있습니까? –

+2

짧은 대답은 아니요 또는 예이지만 GAE 클라이언트가 새 ID를 만들 수 없기 때문에 이러한 익명 xmpp ID를 만들려면 자신의 xmpp 서버를 GAE 외부에서 실행해야합니다. 익명의 xmpp ID를 생성하기로 결정했다면 사용자 지정 클라이언트가 있고 xmpp를 통해 게임 프로토콜을 터널링하기 때문에 아마도 그렇게 할 것입니다. 아이디어가 GAE를 사용하여 no-socket 규칙 때문에 작동하지 않을 xmpp 서버에 전원을 공급하는 것입니다. 하지만 외부 xmpp 서버를 사용하고 GAE를 사용하여 턴 엔진을 수행 할 수 있습니다. – dar

+0

설명서에 GAE가 [appid] @ appspot.com 또는 [anything] @ [app-id] .appspotchat.com이 될 수 있으므로 GAE API가 XMPP 서버 명령을 지원했을 수 있다고 생각했습니다. 그러나 마침내 XMPP의 작동 방식에 대한 내 머리를 얻은 후에 GAE는 클라이언트 일뿐입니다. 그렇지 않으면 예 XMPP는 GAE에 소켓이 없다는 한계를 극복하기위한 터널이되어야했습니다. 폴링하지 않고 즉시 플레이어에게 알리는 방법이 필요했습니다. – kasuku

3

가치 지출에게 당신은 약 2 센트 시간 동안 클라우드 서버를 배포 할 수 있습니다 아마존의 엘라스틱 컴퓨 트 클라우드 (EC2) 보는 15 분을 할 수 있음은. 여기에 좋은 개요가 있습니다. http://www.youtube.com/watch?v=ZAB8wCg9MyE&feature=player_embedded

+0

감사. 나는 순간에 EC2 마이크로와 함께 놀고있어 ejabberd와 잘 작동한다. – kasuku

+1

또한 GAE에는 푸시를위한 채널 API가 있지만 현재 자바 스크립트 만 있습니다. – kasuku

관련 문제