2014-11-17 3 views
0
MessageListener listener = new MessageListener(){ 
    @Override 
    public void processMessage(Chat chat, Message message){ 
     println message.getBody() 
    } 
} 
ConnectionConfiguration cfg = new ConnectionConfiguration("my-pc",5222); 
cfg.setSASLAuthenticationEnabled(true); 
XMPPConnection con = new XMPPConnection(cfg); 
con.connect(); 
con.login("littlechild","secretpassword"); 
ChatManager mgr = con.getChatManager(); 
Chat chat = mgr.createChat("winnenair",listener); 
chat.sendMessage("Hello!"); 
// con.disconnect(); 

Я использую этот код для отправки сообщения пользователю с именем «winnenair».Smack: невозможно отправить сообщение с чатом, созданным с помощью «Chat chat = mgr.createChat (« winnenair », прослушиватель);

Моя консоль администратора OpenFire показывает мне (код) и пользователю (Spark IM Client) как онлайн. Однако, когда я отправляю сообщение из кода, он никогда не появляется в IM-клиенте. Оба они находятся на одном ноутбуке.

Я сделал что-то не так?

Extra:
Оба пользователи были добавлены в реестр

ответ

0

Проблема прикован к этой линии:

Chat chat = mgr.createChat("winnenair",listener); 

Название «winnenair» должно быть «[email protected]». Нужно добавить домен в имя пользователя.

+0

Неверное имя домена JID, если быть верным. См. Также javadoc [createChat] (https://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/ChatManager.html#createChat (java.lang.String,% 20org. jivesoftware.smack.MessageListener)). – Flow

+0

@Flow Figured :) –

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