2010-07-11 4 views
0

client1 может отправить текстовое сообщение для CLIENT2 с помощьюСмак клиент обмена сообщения, кроме текстового чата

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

Как отправить другой вид сообщения: как информационное сообщение? (клиент1 к клиенту2)?

Потому что я хочу, сообщение INFO не должно отображаться в окне чата .... возможно ли это? используя smack, smackx library.

Большое спасибо.

ответ

2

Что вы хотите сделать, так это добавить расширение к текстовому сообщению. Вот приблизительное руководство.

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) 

Свойства выполняются в отдельном пространстве имен (используйте toXML() смотреть на него) и не будет отображаться в окне чата. На «другой стороне» приложения используют getProperty() для получения значения.

Если вы не хотите пары ключ/значение, но структурированные данные, используйте addExtension() в теле сообщения. Это немного сложнее, потому что вам в основном нужно расширить PacketExtension, предоставить свое собственное пространство имен. Возможно, вам даже придется написать PacketExtensionProvider.

Смежные вопросы