2011-12-23 5 views
0

iPhone 및 Android의 기본 앱을 통해 액세스 할 수있는 채팅 응용 프로그램을 만들고 있습니다. 나는 그것이 어떻게 행해질지를 조사하는데 약간의 시간을 보냈지 만, 나는 아직 그것에 대해 꽤 잘 이해하지 못하고있다. 예를 들어 모바일 틱에 대한 튜토리얼을보고 따라 왔습니다 (http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/)xmpp 서버에 API 추가하기? 커스텀 API가있는 xmpp 서버의 개념에 대해 불분명하다

그러나 채팅 앱이 로그인/체크를 넘어 설 수있게하려는 경우 & 메시지를 보내려면 어떻게해야합니까? 온라인

  • 사용자 (위치, 연령 등 특정 critera을 충족 지금
  • 사용자 : 예를 들어

    는, 내가 추가하고 싶은 하나 개의 기능은 다음과 같은 기준의 userbase가를 검색 할 수있다)

예를 들어, 내 xmpp 서버로 ejabberd 또는 Openfire를 사용하는 경우 iPhone/Android에서 액세스 할 수있는 새 맞춤 API를 어떻게 추가합니까?

난 그냥 여기 거친 예제를 만들고 있어요,하지만 어쩌면 같은 것을 할 수있는 것은 좋은 것 :

- (NSArray를 *) findUsersInCity : (있는 NSString *)는

어떻게

을 CityName이 xmpp 서버가 cityname 기준과 일치하는 사용자 목록을 다시 전달하도록 할 수 있습니까?

미리 감사드립니다.

XMPP 구성 요소

구성 요소는 XMPP 서버에 별도로 존재합니다

답변

4

는 XMPP 서버를 확장 할 수있는 여러 가지 방법이 있습니다. 거의 모든 언어로 작성할 수 있으며 프로토콜 (http://xmpp.org/extensions/xep-0114.html)에 따라 XMPP 서버에 연결합니다. 구성 요소는 서버의 하위 도메인을 처리하기 위해 등록하고 해당 구성 요소로 보내는 모든 메시지/IQ는 처리하고 응답 할 수 있도록 XMPP 서버에서 코드로 바로 전달됩니다. 예를 들어 [email protected]/resource 대신 [email protected]/resource으로 메시지를 보낼 수 있습니다.

구성 요소의 장점은 모든 XMPP 서버 (구성 요소를 지원하는 대부분의 주요 구성 요소)와 함께 작동해야한다는 것입니다. 예를 들어 Openfire에서 ejabberd로 변경해야하는 경우에는 작업을하지 않아도됩니다. 단점은 서버 자체의 데이터에 액세스 할 수 없다는 것입니다. 외부 데이터에 대한 액세스를 제공하려는 경우 (자체 데이터베이스 말하기) 충분하지 않을 수 있습니다.

플러그인/모듈

이이 서버 특정 서버와 같은 언어로 작성해야합니다. Openfire에는 플러그인이 있고 ejabberd에는 모듈이 있습니다. 이것들은 XMPP 서버와 통합되어 훨씬 더 많은 옵션을 제공합니다. XMPP 서버를 전환하려면 처음부터 개발을 시작해야합니다. Openfire 용 플러그인을 만들고 싶다면 Plugin Guide과 Openfire API를보십시오 : API Docs. API는 광범위하며 서버에서 사용할 수있는 대부분의 데이터를 가져올 수 있습니다.

수정 소스 코드

안 좋은 옵션이 있지만, 언급 할 가능성이 가치 - 당신은의 Openfire에 대한 소스 코드를 다운로드하여 수정을하고 다시 만들 수있다. 나는 당신이 API가 당신에게 필요한 것을 줄 수 없다는 것을 확신 할 때만 이것을 할 것입니다.

+1

"XEP-0055 (http://xmpp.org/extensions/xep-0055.html)에 대해 모두 가르쳐주십시오"를 추가하면이 대답이보기 좋습니다. –