2010-07-11 4 views
0

client1 peut envoyer txt message à l'aide CLIENT2client de messagerie Smack autre que chat texte

connection.getChatManager().createChat(to, this).sendMessage(message); 

Comment envoyer un autre type de message: comme message INFO? (client1 à client2)? Parce que je veux, le message INFO ne devrait pas être affiché dans la fenêtre de discussion ... est-ce possible? en utilisant smack, bibliothèque smackx.

Merci beaucoup.

Répondre

2

Ce que vous voulez faire ici est d'ajouter une extension à votre message texte. Voici un guide approximatif.

Chat chat = connection.getChatManager().createChat(to, this); 
Message message = new Message(to, Message.Type.chat); 
message.setBody("hello"); 
message.setProperty(prop0, val0); 
message.setProperty(prop1, val1); 
chat.sendMessage(message) 

Les propriétés sont transportées dans un espace de noms séparé (utilisez toXML() pour regarder) et ne figurent pas dans la fenêtre de chat. De l'autre côté, les applications utilisent getProperty() pour récupérer la valeur.

Si vous ne souhaitez pas de paires clé/valeur, mais des données structurées, utilisez addExtension() dans le corps du message. C'est un peu plus compliqué parce que vous devez essentiellement étendre PacketExtension, fournir votre propre espace de noms. Vous pourriez même avoir à écrire un PacketExtensionProvider.

Questions connexes