这几天一直在研究怎么使用smack+openfire发送消息,今天终于成功了,虽然只是一个很小的例子,但还是很激动啊。
首先本机已安装了openfire服务器,并创建了两个用户 aa、test。在MyEclipse中通过程序登录、并互发消息。
程序如下:
package com.test;
import java.util.Scanner;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;
public class Sender {
public static void main(String[] args) throws XMPPException, InterruptedException{
//连接服务器、并登录
XMPPConnection conn1 = new XMPPConnection("127.0.0.1");
System.out.println(conn1);
conn1.connect();
conn1.login("aa", "aa");
Chat chat = conn1.getChatManager().createChat("test@youlian", new MessageListener() {
public void processMessage(Chat arg0, Message arg1) {
String from = arg1.getFrom();
String body = arg1.getBody();
System.out.println(from);
System.out.println(body);// 获取消息内容
}
});
chat.sendMessage("hello test, I'm aa");
while(true){
Scanner input = new Scanner(System.in);
String msg = input.nextLine();
chat.sendMessage(msg);
}
}
}
package com.test;
import java.util.Scanner;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;
public class Receiver {
public static void main(String[] args) throws XMPPException, InterruptedException{
XMPPConnection conn2 = new XMPPConnection("127.0.0.1");
System.out.println(conn2);
conn2.connect();
conn2.login("test", "test");
Chat chat = conn2.getChatManager().createChat("aa@youlian", new MessageListener() {
public void processMessage(Chat arg0, Message arg1) {
String from = arg1.getFrom();
String body = arg1.getBody();
System.out.println(from);
System.out.println(body); //获取消息内容
}
});
chat.sendMessage("hello aa I'm test");
while(true){
Scanner input = new Scanner(System.in);
String msg = input.nextLine();
chat.sendMessage(msg);
}
}
}
结果:
aa的控制台信息:
test控制台信息:
-------------------------------------------------------------------------------------------------------------------------------
前路漫漫,继续加油!