最近刚学习了Openfire+Spark+Smack,特意总结一下给需要的童鞋们,哈哈
感谢以下链接的原作者,谢谢他们的分享!
Openfire的安装和配置教程
参见http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html
【这个当然需要先安装Tomcat,Tomcat的安装教程可以自行百度
Openfire_3_7_1.zip下载 百度下载链接: http://pan.baidu.com/s/1i3GGVMP 密码: ec84】
【spark_2_6_3.exe 的下载链接: http://pan.baidu.com/s/1dD2BYfB 密码: m4am】
spark下载之后直接安装就行
3、Smack API下载
【XMPP协议开发包Smack 介绍链接:http://www.oschina.net/p/smack】
【smack_3_0_4.zip 百度云盘下载链接: http://pan.baidu.com/s/1wC0mM 密码: bees
smack_3_0_4.zip 的jar包要正确的引用!
在Eclipse环境中编写代码,代码如下:
package ceshi;
import java.util.Collection;
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.RosterEntry;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.packet.Message;
public class ceshi {
public static void main(String[] main){
// XMPPConnection.DEBUG_ENABLED=true; //开启调试
//这里是服务器的地址,在本机上搭建 openfire 的话用 127.0.0.1 就可以
//这里如果服务器在别人电脑上,是用服务器IP,比如在219.231.164.10上
//XMPPConnection conn = new XMPPConnection("219.231.164.10");
XMPPConnection conn = new XMPPConnection("127.0.0.1");
try{
conn.connect();
//发送端的用户名密码,利用哪个账号向外发消息
conn.login("admin","admin");
//创建的消息
MessageListener messageListener= new MessageListener(){
@Override
public void processMessage(Chat chat,Message message) {
String messageBody = message.getBody();
System.out.println("收到信息:" +messageBody+" "+message.getFrom());
}
};
//接收端的 JID,这个 JID 是要加域的,不然会报错
//域名就是Openfire的域名,zcx是用户名,需要提前在Openfire系统中添加用户
Chat mychat=conn.getChatManager().createChat("zcx@yixinliu", messageListener);
System.out.println("我的好友列表:=======================" );
Collection<RosterEntry> allrosters = conn.getRoster().getEntries();
for (RosterEntry rosterEntry : allrosters){
//此处可获取用户 的JID
System.out.print("name: " +rosterEntry.getName()+ "jid: " +rosterEntry.getUser());
System.out.println("" );
}
System.out.println("我的好友列表:=======================" );
mychat.sendMessage("火箭要输"); //发送信息 。admin发送给zcx的消息
conn.disconnect(); //断开连接
System.out.println("finish");
}
catch(Exception e){
System.out.println("wrong");
}
}
}
利用以上代码,实现JAVA发送消息,可以利用Spark进行消息的接收!
备注:【其余可参考的博客文章】
1、Smack API学习 链接:http://314858770.iteye.com/blog/908246
2、Smack文档 链接:http://www.cnblogs.com/zhangdongzi/archive/2012/01/11/2320021.html
3、Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置
链接:http://blog.csdn.net/ares1201/article/details/7737872
4、Smack官网 链接:http://www.igniterealtime.org/