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

Smack介绍

Smack是XMPP协议的的实现库,Smack库易于使用,仅仅几行代码就能实现客户端连接,登陆,发送即时消息。但是由于使用XMPP协议,所以不适合用在高并发的场合。

Smack的使用

本文使用的是4.1.9版本的Smack库来演示,Smack的官方下载地址:http://www.igniterealtime.org/projects/smack/
下载下来后根据需求进行引入。比如,android平台,要额外引入smack-android-4.1.9.jarsmack-android-extensions-4.1.9库,而且,需要在使用之前进行初始化:

AndroidSmackInitializer androidSmackInitializer=new AndroidSmackInitializer();
androidSmackInitializer.initialize();

而且值得注意的是:Android网络连接需要在子线程中进行。

如果运行在PC端则不需要以上要求。

连接服务器

//配置一个TCP连接
XMPPTCPConnectionConfiguration config =XMPPTCPConnectionConfiguration.builder()
        .setServiceName("openfire")//设置服务器名称,可以到openfire服务器管理后台查看
        .setHost("localhost")//设置主机
        .setPort(5222)//设置端口
        .setConnectTimeout(20000)//设置连接超时时间
       .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)//设置是否启用安全连接
        .build();
XMPPTCPConnection connection = new XMPPTCPConnection(config);//根据配置生成一个连接
connection.connect();//连接到服务器

也可以设置监听连接的状态

connection.addConnectionListener(newConnectionListener() {
       @Override
       public void connected(XMPPConnection connection) {
           //已连接上服务器
       }
 
       @Override
       public void authenticated(XMPPConnection connection, boolean resumed) {
           //已认证
       }
 
       @Override
       public void connectionClosed() {
           //连接已关闭
       }
 
       @Override
       public void connectionClosedOnError(Exception e) {
           //关闭连接发生错误
       }
 
       @Override
       public void reconnectionSuccessful() {
           //重连成功
       }
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值