2013-06-01 2 views
12

정말이 문제에 대한 해결책을 찾으려고했으나하지 않았습니다. 이 개념과 관련된 일부 스레드가 있지만 포괄적 인 솔루션을 찾지 못했습니다.XMPP (Openfire) 푸시 알림 Android

메시지를 보내는 Openfire가있는 서버가 있습니다. 두 사용자가 모두 온라인 상태이면 문제가 없습니다. 그러나 사용자가 오프라인 상태 인 경우 Whatsapp와 같이 밀어 넣기 알림을 보내려고합니다. Whatsapp 및 다른 IM 응용 프로그램이 밀어 넣기 알림을 보내기 위해 수정 된 버전의 ejabber를 사용하지만 어떻게 찾을 수 없는지 들었습니다.

하나의 가능성은 GCM을 사용하는 것입니다. 그러나 이것이 올바른 방향인지 확실하지 않습니다. 또한 배터리 수명을 소모하지 않기 위해 폴링을 피하고 싶습니다.

누구에게 어떤 해결책을 알고 있습니까? 예가 있습니까?

답변

2

글쎄, GCM과 XMPP를 함께 사용할 수 있습니다. 새로운 GCM Cloud Connection Server을 사용하면 서버와 Android 애플리케이션 간의 양방향 (Cloud to Device 및 Device to Cloud) 통신을 위해 XMPP 프로토콜을 사용할 수 있습니다.

GCM 클라우드 연결 서버 (CCS)

는 에 타사 서버는 XMPP 프로토콜을 사용하여 Google 서버와 영구적 인 TCP 연결을 설정하여 안드로이드 장치와 통신 할 수 있습니다. 이 통신은 비동기 및 양방향입니다.

+0

나는 그것을 시도 할 것이다. 이것이 내가 어떻게 좋은 해결책이 될 수 있는지를 안다. 일단 당신의 솔루션이 나를 위해 일했다면 당신의 대답을 받아 들일 것입니다. – Max

+0

글쎄, 시도해 볼만한 가치가 있지만 시험판 기능이라는 것을 잊지 마라. – Eran

+0

푸시 알림을 수신하려면 기기에서 Google 계정이 필요 했으므로 GCM을 사용하지 않는 것이 좋겠지 만 현재로서는이 옵션을 유일한 옵션으로 간주합니다. 당신의 대답에 다시 한번 감사드립니다. – Max

-3

openfire에서 자동으로 수행되며 사용자가 온라인 상태가되면 메시지가 자동으로 수신됩니다. 따라서 아무런 걱정없이 오프라인 사용자에게 메시지를 보내면 사용자가 온라인 상태 일 때 자동으로 사용자에게 메시지가 푸시됩니다.

+0

글쎄 그건 사실이지만 인스턴트 메신저를 만들고 싶습니다. 인스턴트 메신저는 사용자가 오프라인 인 경우에 밀어 넣기 알림이 필요합니다. 사용자에게 메시지를 보내면 알려주 길 원합니다 (푸시 알림). – Max

+1

왜 백그라운드 서비스를 실행하지 않고 OpenFire에 대한 연결을 유지합니까? –

8

나는 openfire를 공부 중이며 나와 공유하고 싶은 좋은 옵션을 발견했습니다. github에서 플러그인을 발견했으며 이번 주에 테스트 해 보겠습니다. https://github.com/meisterfuu/Openfire-GCM/

또 다른 옵션은 CallbackOnOffline에게로와 및 매개 변수에서 지정된 URL을 호출 플러그인을 사용하는 것입니다 : 그 목표에 내에 좋은 해결책이 될 것 같다. 이 URL은 웹 서비스의 끝점이 될 수 있으며 해당 데이터 (받는 사람과 보낸 사람)를 기반으로 밀어 넣기에 관련 ID를 얻을 수 있으며 밀어 넣기를 수행 할 수 있습니다.

https://www.igniterealtime.org/projects/openfire/plugins.jsp

+0

Openfire-GCM이 작동하지 않습니다. 업데이트 된 버전이 있습니까? – Pierre