2013-06-01 20 views
12

Gerçekten bu soruna bir çözüm bulmaya çalıştım ama yapmadım. Bu konseptle ilgili bazı konular var, ancak kapsamlı bir çözüm bulamadım.XMPP (Openfire) Push Bildirimler Android

Mesaj gönderen Openfire içeren bir sunucum var. Her iki kullanıcı da çevrimiçi olduğunda sorun yoktur. Ancak, bir kullanıcı çevrimdışı olduğunda, Whatsapp'ta olduğu gibi bir push bildirimi göndermek istiyorum. Whatsapp ve diğer IM uygulamalarının push bildirimlerini göndermek için değiştirilmiş bir ejabber sürümü kullandığını duydum, ancak nasıl olduğunu bulamadım.

GCM kullanmak bir olasılıktır, ancak bunun doğru yol olup olmadığından emin değilim. Ayrıca pil ömrünü tüketmemek adına yoklamadan kaçınmak istiyorum.

Buna bir çözüm bilen var mı yoksa bir örneği var mı?

cevap

2

GCM'yi XMPP ile kullanabilirsiniz. Yeni GCM Cloud Connection Server, sunucunuz ve Android uygulamanız arasında çift yönlü (Buluttan Cihaz ve Aygıttan Bulut'a) iletişim için XMPP protokolünü kullanmanızı sağlar.

GCM Bulut Bağlantı Sunucusu (CCS)

üçüncü taraf sunucuları XMPP protokolünü kullanarak Google sunucuları ile kalıcı TCP bağlantı kurarak Android cihazlarla iletişim sağlar. Bu iletişimi asenkron ve çift yönlüdür.

+0

Denemeyi deneyeceğim. Bunun nasıl iyi bir çözüm olabileceğini görüyorum. Çözümünüz benim için çalıştıktan sonra cevabınızı kabul ediyorum :) – Max

+0

Eh, bir denemeye değer, ama bir deneme özelliği olduğunu unutma, bu yüzden henüz üretim için hazır olmayabilir. – Eran

+0

GCM'yi kullanmaktan kaçınmayı umuyordum, çünkü bir push bildirimi almak için cihazda bir google hesabı gerekiyordu, ancak bunu şu anda tek seçenek olarak görüyorum. Cevabınız için tekrar teşekkürler. – Max

-3

Açık ateşte otomatik olarak bittiğinde, kullanıcı çevrimiçi olduğunda mesajlar kullanıcı tarafından alınacaktır. Bu nedenle hiçbir endişe bir çevrimdışı kullanıcıya mesaj gönderir ve kullanıcı çevrimiçi mesaj geldiğinde otomatik olarak kullanıcıya gönderilir.

+0

Bu doğru, ancak kullanıcı çevrimdışı olduğunda bir push bildirimi gerektiren bir Instant Messenger yapmak istiyorum. Bir mesaj gönderildiğinde kullanıcının bilgilendirilmesini istiyorum (push bildirimi). – Max

+1

Neden arka plan hizmeti çalıştırmıyorsunuz ve OpenFire ile bağlantı kurmuyorsunuz? –

8

Açıkhava çalışıyorum ve sizinle paylaşmak istediğim bazı iyi seçenekler buldum. Github'da bir eklenti buldum ve bu hafta test edeceğim. https://github.com/meisterfuu/Openfire-GCM/

Diğer bir seçenek CallbackOnOffline To ile ve parametreler itibaren belirli bir URL'yi çağırır Plugin kullanmaktır: O hedefinize ve kardeşime karşı iyi bir çözüm olacaktır görünüyor. Bu URL, web hizmetinizde bir bitiş noktası olabilir ve bu verilerle (Giden ve Giden), tabanınızdaki itme için ilgili Kimliği alabilirsiniz ve bir itme yaptı.

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

+0

Openfire-GCM çalışmıyor. Güncellenmiş bir versiyonunuz var mı? – Pierre