2012-08-01 56 views
1

我試圖在Java中創建一個XMPP測試客戶端,我想插入到我的代碼中,它的行爲與真正的xmpp客戶端類似,但會輸出消息,例如記錄到日誌中。我試圖做到這一點,因爲我想在現實的環境或接近的環境中進行測試。創建測試XMPP客戶端進行測試

理想情況下,我不想模擬或存根,因爲我想要一個xmpp客戶端運行。

任何想法?

回答

3

您是否遇到過Psi?這是一款功能非常強大的跨平臺XMPP客戶端,可讓您在其控制檯中查看原始XMPP流,並粘貼自己的XML以直接發送。它可以爲您節省編寫自己的基於Smack的XMPP客戶端所需的時間。也看看我聽到的gajim是類似的。

+0

謝謝,我也開始在tigase尋找熱塑成型之前,創建一個嵌入式XMPP sevrer在我的應用程序..我努力嘗試運行它作爲即時通訊發現它非常棘手。 – Iqbal 2012-08-02 14:01:02

0

這將幫助你發送消息給xmpp上的接收者。 記得ü將不得不配置的Openfire運行此

import org.jivesoftware.smack.Chat; 
import org.jivesoftware.smack.ChatManager; 
import org.jivesoftware.smack.ConnectionConfiguration; 
import org.jivesoftware.smack.MessageListener; 
import org.jivesoftware.smack.XMPPConnection; 
import org.jivesoftware.smack.XMPPException; 
import org.jivesoftware.smack.packet.Message; 
import org.jivesoftware.smack.packet.Presence; 

public class SenderTest 
{ 
public static void main(String args[]) 
{ 
    //ConnectionConfiguration connConfig = new ConnectionConfiguration("localhost", 5222); 
     //connConfig.setSASLAuthenticationEnabled(false); 
    ConnectionConfiguration connConfig = new ConnectionConfiguration("localhost", 5222); 
    //ConnectionConfiguration connConfig = new ConnectionConfiguration("talk.google.com", 5222, "gmail.com"); 
     XMPPConnection connection = new XMPPConnection(connConfig); 

     try { 
      connection.connect(); 
      System.out.println("Connected to " + connection.getHost()); 
     } catch (XMPPException ex) { 
      //ex.printStackTrace(); 
      System.out.println("Failed to connect to " + connection.getHost()); 
      System.exit(1); 
     } 
     try { 
      connection.login("[email protected]", "a"); 
      System.out.println("Logged in as " + connection.getUser()); 

      Presence presence = new Presence(Presence.Type.available); 
      connection.sendPacket(presence); 

     } catch (XMPPException ex) { 
      //ex.printStackTrace(); 
      System.out.println("Failed to log in as " + connection.getUser()); 
      System.exit(1); 
     } 

    ChatManager chatmanager = connection.getChatManager(); 
    Chat newChat = chatmanager.createChat("[email protected]", new MessageListener() { 
     public void processMessage(Chat chat, Message message) { 
      System.out.println("Received message: " + message); 
     } 
    }); 

    try { 
     newChat.sendMessage("Howdy!"); 
     System.out.println("Message Sent..."); 
    } 
    catch (XMPPException e) { 
     System.out.println("Error Delivering block"); 
    } 
} 

}