[英]Not able to send message using smack Android
我试图将消息发送给客户端,但始终收到此异常:org.jivesoftware.smack.SmackException $ NotConnectedException:客户端未连接或不再连接。 以下是我发送消息的代码:
ChatManager chatMngr = ChatManager.getInstanceFor(connection);
聊天聊天= chatMngr.createChat(toName +“ @ stag-api.artistaloud.com”,FrgChatRoom.this);
try {
chat.sendMessage(txtChatMsg.getText().toString().trim());
} catch (Exception e) {
e.printStackTrace();
}
当我重新登录之前发送消息。 工作正常...请回复..
当您未与Xmpp server
连接时,会发生此exception
。 首先确保您是否与服务器连接?。为了使用asmack libs
与服务器连接,请使用以下代码:
private class ConnectToXmpp extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
ConnectionConfiguration config = new ConnectionConfiguration( server_host, SERVER_PORT);
XMPPConnection m_connection = new XMPPConnection(config);
try {
SASLAuthentication.supportSASLMechanism("PLAIN");
config.setSASLAuthenticationEnabled(true);
m_connection.connect();
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
} catch (XMPPException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
}
}
现在您可以将其作为new ConnectToXmpp().execute();
要发送消息,您必须创建chat
例如:
ChatManager chatmanager = ChatManager.getInstanceFor(connection);
Chat newChat = chatmanager.createChat("jsmith@jivesoftware.com", new MessageListener() {
public void processMessage(Chat chat, Message message) {
System.out.println("Received message: " + message);
}
});
try {
newChat.sendMessage("Howdy!");
}
catch (XMPPException e) {
System.out.println("Error Delivering block");
}
和Chat.sendMessage(String)方法是一种便捷方法,它创建一个Message对象,使用String参数设置正文,然后发送消息。 然后使用以下代码sniipet发送消息:
Message newMessage = new Message();
newMessage.setBody("Howdy!");
message.setProperty("favoriteColor", "red");
newChat.sendMessage(newMessage);
有关更多信息, 请参见此链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.