2012-02-13 5 views
7

Android 채팅 앱을 만들 예정입니다. 실제로 채팅 기능이 앱의 기능이 될 것입니다. 내가 안드로이드와 채팅 애플 리케이션에 관한 모범 사례인지 알고 싶다. 제가 익숙한 두 가지 옵션은 C2MD와 몇 초마다 서버 db의 사용자 정의 폴링입니다.android에서 채팅 앱을 만드는 모범 사례는 무엇입니까

이제 저는 C2MD가 위대하고 모든 것으로 생각되지만, 제 이해에서 볼 때 신뢰할 만하지는 않습니다. 나는 그것을 구현하려고 시도했지만 작동하지 않는 것 같다. 또한 무엇인가의 이유로 Google 검색 결과에 문제가 발생하면 (서버가 다운 된 것처럼 보이지는 않지만 발생할 수 있음) 필자는 연락 할 수있는 방법이 없으며 시간대에 있습니다.

지금 내 자신 만의 일을하면 (사용자가 만든 메시지를 보내고 새로운 메시지가 도착했는지 주기적으로 서버를 확인하는 기본적인 접근 방법) 괜찮은 것 같습니다. 사용자 경험, 내 서버의 폴링은 5 초 정도 여야하며 미친 듯이 배터리를 씹을 것입니다. 이것은 실제로이 접근법을 사용하여 얻은 주요 단점입니다.

그래서 나는 잘 모르는 더 나은 방법이 있다는 것을 궁금해합니다. 어떤 도움이나 건축 구조라도 있으면 도움이 될만한 것이 있습니다.

답변

8

XMPP를 사용해보아야합니다. Android XMPP 용 StackOverflow를 검색하면 Smack (XMPP 클라이언트 라이브러리)의 변형을 사용하는 것이 좋습니다 here이 될 것입니다. 코멘트를 해결하기 위해

업데이트 :

우선, XMPP는 프로토콜이 아닌 클라이언트 또는 서버입니다. 이를 사용하는 이점 중 하나는 널리 사용 가능한 XMPP 클라이언트 및 서버 구현이 있다는 것입니다. Wikipedia article은 대부분의 질문에 답합니다. GTALK에 대한 내 댓글에 대해서는

:

XMPP 네트워크의 아키텍처를 이메일로 유사하다; 누구나 자신의 XMPP 서버를 실행할 수 있으며 중앙 마스터 서버가 없습니다.

XMPP 두 가지 방법으로 사용할 수 HTTP : 폴링 대하여

. 폴링 [21]과 결합하는 [22] 폴링 메소드는 이제는 더 이상 사용되지 않지만 기본적으로 서버 측 데이터베이스에 저장된 메시지는 HTTP 'GET'및 'POST'요청을 통해 XMPP 클라이언트에서 정기적으로 가져오고 게시합니다. HTTP Y 인딩을 사용하면 클라이언트는 메시지가 전송 되 자마자 수명이 긴 HTTP 연결을 사용합니다. 이 알림 푸시 모델은 많은 설문 조사가 새로운 데이터를 반환하지 않는 폴링보다 더 효율적입니다.

웹 소켓도 사용할 수 있습니다.

.NET 통합 관련 (필요한 경우 ... 자신의 XMPP 서버 만 실행할 수 있음) XMPP 및 .NET 용 StackOverflow를 검색하면 몇 가지 질문/아이디어를 얻을 수 있습니다. 이 질문과 같은 XMPP 서버와의 .NET 서버 통합 : Opensource .Net Jabber/XMPP server?

+0

그래도 XMPP는 Windows 서버/.net webservice와 대화합니까? 어떻게하면 자신의 웹 서비스와 대화 할 수 있습니다. 또한 서버를 너무 자주 폴링하지 않고도 메시지를 수신합니까? 나는 XMPP에 익숙하지 않고 구글을 가지고 있지만 실제로 좋은 정의를 얻지는 못했다. – user638049

+0

이것은 gtalk를위한 것이 아닙니다.내가 만든 제 3 자 채팅 프로그램이 될 것입니다. 나는 내 자신의 webservices를 호스팅하고 내 모든 채팅 메시지를 저장합니다. – user638049

+0

귀하의 의견을 위해 업데이트되었습니다. – kabuko

관련 문제