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

转载 2017年01月03日 15:34:15

转自 http://blog.csdn.net/liuyixin01/article/details/40892459?utm_source=tuicool&utm_medium=referral

最近刚学习了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环境中编写代码,代码如下:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
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/

相关文章推荐

XMPP——Smack[2]会话、消息监听、字体表情和聊天窗口控制

上一篇是连接,登陆登出和账户管理 继续 连接之后,拿到了connection,通过它可以搞定会话 ...
  • wklken
  • wklken
  • 2011年06月01日 20:59
  • 21051

spark client IM

SparkWeb 是由 Jive 软件公司创建的基于Web的XMPP客户端,采用 ActionScript 3 编写,使用 Adobe 的 Flex API 。支持个人头像装扮 Avatars,vca...
  • gnicky
  • gnicky
  • 2015年06月25日 13:26
  • 1992

基于openfire+spark+smack

前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack。当然也有其他的选择。 Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前...

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

最近刚学习了Openfire+Spark+Smack,特意总结一下给需要的童鞋们,哈哈 感谢以下链接的原作者,谢谢他们的分享! 1、 Openfire 的安装和配置 Openfire的...

即时通讯软件openfire+spark+smack

开发你自己的XMPP IM - [J2EE]这几天查国内外的资料,发现国内关于这方面间的软件资料太少了,就想在这里写几篇关于此类IM 软件开发的文章。不过别看东西小,涉及的模块可不少。所以我基本上分为...

基于Openfire Smack开发即时通讯应用、搭建Openfire服务器(一)

一:Openfire是什么? Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信...
  • a_zhon
  • a_zhon
  • 2017年03月08日 15:46
  • 3044

【openfire,smack使用总结】--Smack库的使用

Smack介绍 Smack是XMPP协议的的实现库,Smack库易于使用,仅仅几行代码就能实现客户端连接,登陆,发送即时消息。但是由于使用XMPP协议,所以不适合用在高并发的场合。 Smack的使用 ...
  • e_one
  • e_one
  • 2017年03月09日 19:01
  • 2206

Android之基于XMPP Smack Openfire 单人聊天和多人聊天(发送消息、接收消息)

Android 基于XMPP Smack Openfire 单人聊天和多人聊天(发送消息、接收消息) 一、单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连...

基于openfire+smack的Android、消息推送服务

前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack。当然也有其他的选择。 Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本...
  • wind520
  • wind520
  • 2014年12月05日 13:48
  • 8315

openfire+smack添加好友申请 Smack 4.1.8 and 4.2.0-beta2 添加好友请求以及确认

openfire Smack 4.1.8 and 4.2.0-beta2 添加好友请求确认首先说一下我踩的坑,以前的方法过期,会有用户名过长无法接收,无法过滤,丢失请求,发送无效等等问题,博客一大堆不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用Openfire+spark+Smack实现XMPP即时通信
举报原因:
原因补充:

(最多只允许输入30个字)