2012-03-11 3 views
2

한 사람의 지리적 위치 집합을 게임을 함께 사용하는 사용자 그룹에 보낼 수있는 Android 용 응용 프로그램을 만들고 있지만 메시지를 보낼 때 어디에서 시작해야할지 정말 모르겠다.게임에서 한 사용자에서 많은 사용자에게 응용 프로그램 메시징 서비스를 디자인하는 방법

하나의 사용자가 서버로 메시지를 보낸 다음 서버가 다른 사용자에게 메시지를 보내도록하는 아이디어가 하나 있었지만 서버에서 어떤 사용자를 보내야 하는지를 알 수있는 방법을 모르겠습니다. 에 대한 메시지.

올바른 경로에 있습니까? 이런 종류의 문제를 다루는 서비스가 이미 설정되어 있습니까? 다른 제안이 있으십니까? 귀하의 의견은 높이 평가됩니다.

답변

0

공유 컨텍스트를 만들면됩니다. 항목을 각 사용자 그룹에 대해 서버에 추가하십시오. 보낸 사람이 주제에 게시합니다. 청취자는 주제에 등록됩니다. 서버가 메시지를받는 것은 간단합니다. 화제에지도로 나타 내기; 그 주제의 가입자들에게 메시지를 보내는 것.

주요 디자인 문제는 정적 또는 동적 주제가 필요한지 여부를 확인하는 것입니다. 즉, 정적 주제에서 서버는 주제의 (정적) 목록을받습니다 (설정 파일을 통해). 동적 변형에서는 동적 그룹 형성을위한 메커니즘을 제공해야합니다.

두 번째 문제점은 토픽 내구성입니다. 그룹 사용자가 접속을 끊고 연결을 다시 설정하고 연결이 끊어진 경우 누락 된 메시지를받을 수 있습니까?

p.s. JMS에서 AMPQ, Java 용 PubSubHub에 이르기까지 다양한 메시징 프레임 워크가 있으므로 기존 코드를 매우 잘 활용할 수 있습니다. 그러나 REST 호출을 통해 서버에 메시지를 보내는 것처럼 간단 할 수 있습니다. 수신자는 (아날로그 REST 호출을 통해) 서버를 폴링하거나 서버가 푸시하기위한 연결을 유지해야합니다. (사용자가 많을 경우 후자는별로 좋은 생각이 아닙니다.)

[최종 편집 : 자신 만의 롤을 만들려면 Redis를 살펴보실 것을 강력히 권해드립니다. 그렇게 쉽게 프로토 타입을 작성할 수 있어야합니다.]

+0

그리고 항상 P2P도 있습니다. – alphazero