Yalnızca geçmişte iletileri aldığım kullanıcıların çevrimiçi/çevrimdışı durumunu bulmam gereken bir uygulama yapıyorum. Sunucudaki tüm kullanıcılar değil. Şimdiden teşekkürler.XMPP sunucusu üzerinden özel kullanıcı çevrimiçi/çevrimdışı durumunun varlığı nasıl kontrol edilir
Q
XMPP sunucusu üzerinden özel kullanıcı çevrimiçi/çevrimdışı durumunun varlığı nasıl kontrol edilir
4
A
cevap
0
Varlıklar yayınlanır, böylece "gerçekleştiğinde" onları alırsınız. Uzak sunucu (S2S, sunucudan sunucu) bağlamında varlık probları vardır. Ama yoklama yok.
0
İstemciye iletilen (Nyco tarafından belirtilen) varlığa sahip olmak için, diğer kullanıcının varlığına abone olmanız gerekir. Burada açıklanandan: http://xmpp.org/rfcs/rfc6121.html#sub
1
-Sen XMPPIQ Sen
let query = XMLElement(name: "query", xmlns: "jabber:iq:last")
let streamUUID = self.xmppStream.generateUUID()
let iq = XMPPIQ(type: "get", to: XMPPJID(string: jid) , elementID: streamUUID , child: query)
self.xmppStream.send(iq)
return streamUUID!
şöyle 'türü, get' ile XMPPIQ oluşturmak için gereken kullanarak belirli bir kullanıcının çevrimiçi/çevrimdışı durumlarını alabilirsiniz sonra adlandırılmış XMPPStreamDelegate protokolünde temsilci yöntemi yoktur 'didReceive iq:', aşağıdaki gibi thi smethod tanıtıcı IQ sonucu sağlamak gerekir,
func xmppStream(_ sender: XMPPStream!, didReceive iq: XMPPIQ!) -> Bool {
if iq.isResultIQ() {
iq.lastActivitySeconds() == 0{
print("user is online")
}else{
print("user is offline")
}
}
return false
}
Merhaba, ben aynı şeyi uygulamak istiyorum. Didi bunun için bir çözüm buldun mu? Eğer evet ise lütfen bana bildirin. Teşekkürler. – nikBhosale
@nikBhosale Belirli kullanıcının çevrimiçi/çevrimdışı durumunu almıyorum. Öyleyse yaptığım şey, bir kullanıcının çevrimiçi/çevrimdışı durumunu bir dizide saklamak ve Jabber kimliği temelinde durum göstermek istediğim kullanıcılar için bu diziyi filtrelemek. –
Tamam, ama dizinizi sürekli dinleme ve düzenleme modunda tutmanız gerektiğinden daha az verimli olacağını düşünüyorum. Bunun yerine XMPPIQ kullanarak cevabıma bakabilirsiniz. Ayrıca, doğru yol olduğunu düşünüyorsanız lütfen bunu da belirtin. Teşekkürler. – nikBhosale