2011-07-08 18 views
10

Chciałbym używać XMPP, aby moja aplikacja wysyłała aktualizacje do telefonu z Androidem (1.5 i wyżej). W zasadzie chcę używać XMPP do wysyłania powiadomień push do telefonu.Jak zaimplementować XMPP do wysyłania powiadomień push

Jak chciałbym osiągnąć ten cel. W tej chwili moja aplikacja internetowa działa na apache tomact z wieloma serwletami, więc telefon z Androidem może uzyskać dostęp do informacji, ale trudno mi zrozumieć, w jaki sposób mogę zaimplementować XMPP, aby móc przekazywać informacje z serwera do klienta (telefon z systemem Android).

Ja testowałem poniższy poradnik Example of XMPP with Google ID login

Wykorzystuje Identyfikator logowania Google. Ale muszę użyć mojego webaplikacji, aby zrobić to, co Google implementuje. Jakieś pomysły?

+0

duplikaty: http://stackoverflow.com/questions/1366219/can-xmpp-be-used-like-comets-http-long-wait –

+0

@ilia - Niezupełnie . – Robin

+0

Ponieważ chcę, aby działał poniżej 2.2 – molleman

Odpowiedz

11

To będzie zależeć od charakteru twojego pchania (jest to punkt do punktu lub sub pub). W obu przypadkach będziesz potrzebował serwera XMPP, do którego są podłączeni twoi klienci i aplikacja. To będzie sposób, w jaki aplikacja będzie wysyłać powiadomienia do klientów.

Nie jestem pewien, co masz na myśli przez "Potrzebuję użyć mojej aplikacji internetowej do tego, co Google implementuje". Twoja aplikacja internetowa byłaby klientem serwera xmpp, podobnie jak twoje telefony. Nie możesz użyć xmpp, aby po prostu porozmawiać z twoją aplikacją internetową, chyba że jest to serwer obsługujący protokół BMPP, co, jak sądzę, jest mało prawdopodobne.

Możesz użyć numeru Smack do komunikacji z klientem i dowolnego z many available servers.

Jeśli komunikacja jest skierowana do określonych klientów, wówczas najpewniejszym rozwiązaniem jest utworzenie między aplikacją a klientem chat. Jeśli jest to więcej transmisji, możesz użyć albo MUC (multi user chat) lub pubsub.

+0

mam openfire skonfigurować ...... ale nie wiem, jak ustawić go po stronie serwera .... co mam na myśli przez to, co google implementuje w aplikacji i połączony z. użytkownik loguje się do aplikacji, a następnie może czatować z kimkolwiek z identyfikatorem google. Ale to, co chcę, to dla mojego serwera aplikacji środek do czatowania (wysyłania powiadomień push) do wielu użytkowników. Nie jestem pewien, jak używać smack do łączenia się z serwerem OpenFire. (zarówno po stronie klienta, jak i po stronie aplikacji) – molleman

1

Ogólnie można to zaimplementować jako funkcję pub-sub. Pub-sub to po prostu paradygmat publikowania/subskrybowania: publikujesz coś, a oni go otrzymują.

Zakładając, że masz konfigurację serwera XMPP, która obsługuje rozszerzenie protokołu pub-sub (np. EJabber), w swojej aplikacji zalogujesz się na ten serwer i zasubskrybujesz węzeł (w którym będą wysyłane powiadomienia o aktualizacjach), oraz z subskrypcją będziesz musiał dodać moduł obsługi, aby obsłużyć każde powiadomienie w tym węźle.

Po stronie serwera, gdy masz coś o czym wszyscy klienci powinni wiedzieć, możesz opublikować aktualizację do tego samego węzła, który subskrybują klienci.

Aby uzyskać więcej informacji, zobacz http://xmpp.org/extensions/xep-0060.html

Powiązane problemy