利用Openfire+spark+Smack实现XMPP即时通信

最近刚学习了Openfire+Spark+Smack,特意总结一下给需要的童鞋们,哈哈

感谢以下链接的原作者,谢谢他们的分享!

1、 Openfire 的安装和配置

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】

2、 Spark的安装和配置

【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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值