2013-01-18 10 views
37

muszę wysyłać powiadomień push do urządzeń z iOS, z mojego serwera Java, przy użyciu Apple Push Notification Service (APNS)Którą bibliotekę Java usługi Java Push Notification Service należy używać?

znalazłem dwie biblioteki wysłać APNS powiadomienia push w Javie:

  1. java-apns
  2. javapns

Ale oba wydają się być porzucone (a przynajmniej mają błędy, a ostatnie wydanie jest rok temu).

java-apns ma wiele forks. Czy w aktualizacji aktywnej dostępne są zaktualizowane widżety tej biblioteki? Czy są jakieś inne lepsze wybory?

Odpowiedz

8

Po krótkich pracach mogłem znaleźć tylko te dwie biblioteki, o których wspomniałeś, Przyjrzałem się najnowszym rozwidleniom na stronie GitHub java-apns, a ostatnie, które mogłem znaleźć, zrobione zostało przez użytkownik pod nazwą "froh42". Jego widelec znajduje się pod numerem here. Ostatnie zatwierdzenie miało miejsce 4 dni temu, ale nie jestem pewien, czy ta osoba rzeczywiście dodaje do głównej funkcjonalności repo, czy nie, ponieważ jest bardzo późno i jestem zbyt zmęczony, by to sprawdzić.

Moja sugestia to, jeśli zamierzasz używać java-pufów, aby spojrzeć na repozytorium Froh i sprawdzić, czy to się sprawdza czy nie. Jeśli nie, możesz wyświetlić listę rozwidleń z oryginalnego repozytorium java-apns here. Przepraszam, że nie mogłem ci pomóc i powodzenia!

+2

Po pierwsze, dziękuję za odpowiedź. Przed pytaniem przejrzałem wszystkie widełki biblioteki w GitHub. Jednym z nich jest ten, o którym wspomniałeś. Więc prawdopodobnie zacznę próbować tego. – sabadow

+3

Dla przyszłych odniesień gałąź ta została zamknięta i została ponownie podłączona do linii głównej. – giampaolo

4

Napotkałem ten sam problem kilka miesięcy temu z backendem Java dla jednej z naszych aplikacji i po wyszukaniu bibliotek (co w rzeczywistości nie było nawet możliwą opcją w Google App Engine) Znalazłem Urban Airship.

Urban Airship to pośrednik między twoim zapleczem a różnymi usługami powiadomień push (obsługuje APNS, ale także android/blackberry/Win). Trzeba tylko skonfigurować usługę Push na swojej platformie, zaimplementować wywołanie REST na jednym z ich punktów końcowych i gotowe!

Mają bezpłatny abonament zaczynający się od 1 miliona (1.000.000) powiadomień/miesiąc.

Naprawdę dobra usługa do tej pory i daje nam możliwość szybkiego skalowania do innych usług push bez konieczności wdrażania konkretnego kodu po naszej stronie serwera.

+0

Dziękuję za odpowiedź. – sabadow

+0

Miałem złe doświadczenia z Urban Airship i polecam robienie własnych rzeczy, jeśli możesz –

3

Wygląda na to, że aktualizowano java-peny. Ostatni commit wynosiła 1 miesiąc temu ...

https://github.com/notnoop/java-apns

Nie używałem go jeszcze, ale wydaje się co najmniej projekt nie jest martwy ...

+0

Pierwsza próba i działa dobrze ... prawdopodobnie użyje tego lub JavaPNS. Nie wiem jeszcze! –

+0

jaki plik poczty Java uruchamiać, aby wysyłać powiadomienia Apple Push? Gdzie podać kod urządzenia i plik cert.12 w tym kodzie? Proszę pomóc ASAP –

33

Jeśli ktokolwiek szuka biblioteki APN w Javie, w RelayRides właśnie wypuściliśmy Pushy (http://relayrides.github.io/pushy/). Robi kilka rzeczy inaczej niż pozostałe dwie rywalizacje (jak IO sieci asynchronicznej), dzięki czemu może bardzo szybko wysyłać dużą liczbę wiadomości. Używamy go również w produkcji, więc jest aktywnie obsługiwany przez naszych inżynierów. Cieszyć się!

EDYCJA: Dla jasności, Pushy jest bezpłatny i open-source (licencja MIT).

+0

Czy Pushy może być używany w App Engine lub czy brak możliwości tworzenia gniazd uniemożliwi prawidłowe działanie? –

+0

Nie jestem do końca zaznajomiony z App Engine lub jego ograniczeniami, ale jeśli ogranicza on możliwość otwierania dowolnych połączeń sieciowych/gniazd, podejrzewam, że nie będzie działać. –

+0

Przepraszam, myślę, że pamiętałem tutaj błędne ograniczenie. Problem ma więcej wspólnego z ograniczaniem tworzenia wątków niż otwierania gniazd. Wierzę, że to ostatnie jest w porządku, ale obsługa asynchronicznej IO bez dodatkowych wątków jest trudna.Podoba mi się wygląd Pushy, ale wierzę, że używa dodatkowych wątków w bibliotece do obsługi odpowiedzi z serwerów APNS i podejrzewam, że te podziały na App Engine. Czy ktoś próbował tego? –

2

Wreszcie decyduję się używać JavaPNS (https://code.google.com/p/javapns/) na moim projekcie, jest łatwy w użyciu i spełnia moje wymagania.

Ale niedawno znalazłem nowy projekt, który wygląda bardzo obiecująco i mam zamiar użyć w niedalekiej przyszłości.

Wewnątrz projektu AeroGear znajduje się kilka bibliotek. Jednym z nich jest AeroGear UnifiedPush Server z obsługą APN Apple, Google Cloud Messaging i Simple Push Mozilli.

ma też biblioteki klienckie (iOS, Android) do łatwej integracji z serwerem:

ma również inne jakieś fajne funkcje, takie jak, Administration console, Java Sender client API, Rest API, ...

Mam nadzieję, że pomaga komuś innemu.

+1

możesz użyć AeroGear na swoich projektach? Mam problem ze znalezieniem sposobu użycia go jako biblioteki abstrakcji powiadomień push, w przeciwieństwie do pełnego serwera. –

1

Nie polecam JavaPns, jeśli zamierzasz używać go jako queue mode, ponieważ chcesz wysyłać wiele wiadomości jednocześnie. Jest naprawdę nieprzyjemny Bug, który powoduje, że tracisz powiadomienia push, ale biblioteka mówi, że wszystko zostało wysłane.

1

Używam javapns, jak dotąd nie widziałem problemów (Mój projekt wciąż jest na etapie rozwoju); Ale widziałem, że projekt nie był aktualizowany od 2 lat. i java-apns aktualizuje, będę musiał spróbować.

Zaktualizowałem odpowiedź, zacząłem używać natrętnego dla APN od 3 miesięcy temu, to naprawdę ma lepszą wydajność. Teraz proponuję użyć nachalny.

Powiązane problemy