簡體   English   中英

無法使用smack Android發送消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM