2013-05-08 21 views

cevap

13

Bir "sohbet app" bir omurga olarak APNS'ye kullanarak engelleyin olacaktır.

Hızlı sohbet işlevselliğine ihtiyacınız varsa, kendi TCP soket tabanlı sunucunuzu yazmalısınız.

Her birkaç saniyelik senkronizasyon o.k. HTTP tabanlı bir sunucu arka uç ile kurtulabilirsiniz (ancak tüm çek-senkronizasyon ağ trafiğinde zor olabilir - bu yüzden TCP soketi hala daha iyi bir seçimdir).

Bununla birlikte üzere APNS'ye kullanabilirsiniz çare - Belirli cihaz üzerinde uygulaması bir ilk mesajı gönderebilir (yani sunucuya bağlı değildir) APNS yalak yanıt değilken (kullanıcıyı bilgilendirmek için uygulamanızı & uyanmak Onu bekleyen bir mesaj var).

En kısa sürede kullanıcı uygulamanızı Eğer geri TCP-soket veya HTTP isteği tabanlı sunucu iletişimi geçmek gerektiğini açar gibi. Sorunuza gelince

: hayır Apple muhtemelen sırf sohbet için APNS'ye kullanmanın uygulamanızı reddetmez (bir kesin bilemez) olacaktır. Ama not (diğerlerinin söylediği gibi): iki kullanıcı arasındaki "kayıp" mesajını çok sık etkileşime girecek olursa, Roman Barzyczak'ın size verdiği bağlantıya bakın.

+1

Teslimatın garanti edilmediği doğru olsa da, katılmama eğilimindeyim, bu amaçla itme bildirimi kullanan bazı başarılı uygulamalar var. buraya bakın http://blog.parse.com/2013/02/01/instadm-brings-private-messaging-to-instagram/ – Alex

13

"Eğer kısa bir zaman dilimi içinde aynı cihaza veya bilgisayara birden fazla bildirim gönderiyorsanız, itme hizmeti yalnızca sonuncusu gönderecek."

fazla bilgi: http://developer.apple.com/library/ios/#technotes/tn2265/_index.html

ancak Apple alışkanlık Sen mesajlaşma için kullanabilirsiniz ama çabuk gelecek garantisi yoktur öğrenmek için gidiyoruz geliştirici hesabınızı :)

+0

Uygulamamı test ettim. Sohbet ederken aslında hiç bir metin eksik değilim. Benim karışıklığım, eğer binlerce kişi aynı anda sohbet ederse o zaman ne olacak! siz ve benim elimden teşekkürler tabiri bloke etmeyecekler ..:-) – sumon

+0

APNS anlık mesajlaşma için iyi bir fikir değildir. Çok iyi bir alternatif de öyle. websocket :) –

+0

Bu yüzden, soket programlaması yapmam gerekiyor ve kendi push sunucumu oluşturmam gerekiyor, değil mi? – sumon

6

bloke ederler. Bu push bildirimlerinin kara deliği olarak bilinir. ;-)

+0

:-( , ben farklı bir yol için dışarı bulmalıyız anlık ileti .. – sumon

+0

İtme bildirimi genellikle tam bir kanıtlama yöntemi yerine bir bonus özelliği kullanılmalıdır.En iyi seçeneğiniz yerel bildirimleri kullanmak olacaktır.Toplu uygulamalar istisna ile açılabilecek süreye sınırlamalar olsa da müzik, gezinme, sabit çevre desteği (bluetooth) veya voip uygulamaları oynayan uygulamaların listesi https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPh Bir sohbet uygulaması için oneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html # // apple_ref/doc/uid/TP40007072-CH4-SW3 –

+1

Yerel bildirimleri? Bu nasıl olacak? Yeni bir mesajın geldiğini kullanıcılara bildirmek için Push'i kullanmalıdır, ancak bu olmalıdır. Mesajlaşma servisinin kendisi özel bir sunucuda yaşamalıdır. –

1

Bir APNS tek çözüm kullanmak için bu answer here.

İlk deneyin gibi. Gönderme bildirimlerinizi vatansız bir şekilde yapın (yalnızca "Sunucuda yeni bir şeyleriniz var" şeklinde hizmet veriyorlar).
İstemci bir push bildirimi aldığında, sunucudan yeni veriler (mesajlar veya başka şeyler) ister. (Arka ucundan) push bildirimleri gönderir kodunu basitleştirmek için

kullanın OneSignal. Uygulamanızda bir kullanıcı 10 saniye sonra mesaj alırsa o

bile WhatsApp adlı mesajları gelmesi saniye birkaç alabilir ... Eğer TCP kullanılırsa, socket.io veya xmpp dikkat doz.

Sohbet uygulaması gerçek zamanlı bir oyun değildir. Son kullanıcılar tarafından birkaç saniyelik bir gecikme kabul edilebilir.

İlgili konular