Comment obtenir l'horodatage du message xmpp entrant?
Je suis en utilisant aSmack bibliothèque de communiquer à distance avec serveur xmpp. Je suis en mesure d'envoyer/recevoir des messages, mais je veux obtenir horodatage des messages entrants.
Pourriez-vous me dire s'il vous plaît, est-il possible? Parce que je ne peux pas trouver quelque chose sur cette question.
Merci d'avance
source d'informationauteur Infernus
Vous devez vous connecter pour publier un commentaire.
Horodatage n'est pas une partie de la régulièrement des messages. Par conséquent, vous ne peut pas l'extraire.
Il y a une spec (comme mentionné par @Dimitri), mais cela ne s'applique qu'à certains types de messages. Généralement ceux qui ne sont PAS en temps réel, comme en mode hors connexion et la publication de la dernière pubsub message d'un nœud lors d'un nouvel abonnement est créé. Ces sont des messages avec un délai inhérent intégrés.
En raison des spécifications de temps est nécessaire attribut pour XMPP message:
http://xmpp.org/extensions/xep-0203.html#protocol
Vérifier la
<delay
élément de<message
:Mais il se ressemble un peu difficile. Dès que aSmack est recompilé Smack avec certains remplacé trucs, donc essayer de l'obtenir de la manière que voici:
http://edwin.baculsoft.com/2011/06/how-to-get-offline-messages-timestamp-on-openfire/
Probablement, vous aurez besoin de vérifier que le serveur envoie le message que l'extension de la valeur et de la remplacer
"jabber:x:delay"
avec'urn:xmpp:delay'
comme il est montré dans XMPP specs exemple.Mais vous ne savez pas si il fonctionne.
Bien que, dans le cadre d'un mélange d'autres réponses déjà ici, je voudrais présenter la réponse comme suit...
XMPP est "en temps réel"... bien que ce terme peut signifier beaucoup de choses différentes pour différentes personnes, en général, vous pouvez supposer que vous recevez des messages (presque) dès qu'ils sont envoyés tous les XMPP logiciel est conçu autour de la réalisation de cet objectif.
Cependant il n'y a aucune garantie quant à la fin à la fin de la latence. En général, la pratique, vous serez généralement un message s'affiche à présent moins d'une seconde après qu'il a été transmis par l'expéditeur, si les conditions du réseau peuvent l'affecter.
Dans certains cas, le message sera temporairement retardé, comme quand un nouveau serveur-à-serveur de connexion doit être établie. Cela peut prendre quelques secondes en général, à nouveau en fonction des conditions du réseau et la méthode d'authentification utilisée entre les serveurs.
Un message peut également être retenue si le destinataire est hors ligne, le serveur du destinataire peut tenir le message dans un "message hors ligne" magasin, jusqu'à ce qu'il peut le faire lorsque le bénéficiaire est en ligne.
En raison de la générale de livraison instantanée des messages XMPP, les horodatages sont généralement pas inclus dans le message lui-même, en tant que l'information est inutile (et en assume les horloges sont tous corrects).
Dans les cas où le message est sciemment retardé si, comme dans les exemples ci-dessus, l'entité qui retarde le message peut insérer une balise dans le message indiquant l'heure d'origine du message. Ceci est détaillé dans XEP-0203: Retard de Livraison.
Il travaille également pour 4.1.9
Avec smack 4.2.0-rc2-SNAPSHOT version, il est facile d'accès,