Aşağıda OpenFire Server'ı üzerinden karşılıklı komut satırından iki kullanıcının mesajlaşmasını sağlayan uygulamanın kodu bulunmaktadır :
package com.donetr.xmpp.test;
import java.util.*;
import org.jivesoftware.smack.*;
import org.jivesoftware.smack.filter.*;
import org.jivesoftware.smack.packet.*;
public class TestClient extends Thread {
public String username="";
public String password="";
public String friend="";
public TestClient(String username,String password,String friend) {
this.username=username;
this.password=password;
this.friend=friend;
}
@Override
public void run() {
boolean isClose=false;
try {
ConnectionConfiguration conf=new ConnectionConfiguration(
"localhost",5222);
XMPPConnection connection=new XMPPConnection(conf);
connection.connect();
System.out.println("OpenFire Server'ına Bağlandı");
PacketListener myPacketListener = new PacketListener() {
public void processPacket(Packet packet) {
Message message = (Message) packet;
System.out.println(packet.getFrom()+":"+message.getBody());
}
};
PacketTypeFilter filter = new PacketTypeFilter(Message.class);
connection.addPacketListener(myPacketListener, filter);
connection.login(username, password);
System.out.println(username+" login oldu..");
while(!isClose){
Scanner in = new Scanner(System.in);
String message=in.nextLine();
if(message==null){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
continue;
}
if(message.equals("exit")){
isClose=true;
connection.disconnect();
break;
}else{
System.out.println(message+" mesajı gönderiliyor...");
Chat chat=connection.getChatManager().createChat(friend,null);
Message messageObject=new Message();
messageObject.setBody(message);
chat.sendMessage(messageObject);
System.out.println(message+" mesaji gönderildi ...");
}
}
} catch (XMPPException e) {
e.printStackTrace();
}
}
public static void main(String[] args)
throws XMPPException {
TestClient c=new TestClient(args[0],args[1],args[2]);
c.start();
}
}
Uygulama bir console uygulamasıdır ve test edebilmek için iki ayrı console uygulaması çalıştırmak gerekir. Argüman olarak üyenin
<şifre> şeklinde değerleri verilmelidir. "Arkadaşın Kullanıcı Adı" bilgisi JID tipinde olmalıdır ve bu değer kullanıcıadi@servername şeklindedir.
OpenFire server'ına bağlanmak için Smack kütüphanesi kullanılmaktadır.