最近在学习基于Xmpp的android通信软件,现将一些关键的环节分享记录在这里。

在Openfire服务器端配置好后,开始开发android客户端。

(有关Openfire服务器的搭建,可以参考Openfire 的安装和配置)

整体框架:

基于Xmpp,Openfire和Asmack的聊天软件的开发(一)_第1张图片

android客户端通过smack与openfire服务器进行通信,从而实现客户端之间的通信功能。Asmack为smack在android环境下的jar包。


第一步,要建立客户端到服务器的连接。


若想实现即时通信的功能,必须要能够实时的从服务器获取信息,那么就要能够使得客户端与服务器保持长时间的连接,在asmack中,提供了一个XMPPConnection类来实现与服务器保持长连接的功能。

具体实现如下:

private static XMPPConnection con = null;    private static void openConnection() {        try {            ConnectionConfiguration connConfig = new ConnectionConfiguration("10.105.74.254", 5222);//服务器地址,端口号            con = new XMPPConnection(connConfig);            con.connect();//开启连接        }        catch (XMPPException xe)        {            xe.printStackTrace();        }    }

XMPPConnection有两个非常重要的函数:

xmppConnection.isConnected() :布尔值表示是否连接到服务器(注意:此时用户不一定登录);

xmppConnection.isAuthenticated() : 布尔值表示是否登录成功(即用户名+密码验证通过),此时代表已登录成功,且与服务器保持连接。

通过这两个函数,就可以知道连接是否成功,登录是否成功。



第二步,用户登录

XmppTool.getConnection().login(Userid, passwd);//登录(用户名+密码)Presence presence = new Presence(Presence.Type.available);//状态为在线        XmppTool.getConnection().sendPacket(presence);

Presence类位于 org.jivesoftware.smack.packet.Presence中。

Presence主要用来设置用户状态(在线,离线),发出添加和删除好友的信息。由Presence中的Presence.Type属性实现,具体含义如下:

  • available: 表示处于在线状态
  • unavailable: 表示处于离线状态
  • subscribe: 表示发出添加好友的申请
  • unsubscribe: 表示发出删除好友的申请
  • unsubscribed: 表示拒绝添加对方为好友
  • error: 表示presence信息报中包含了一个错误消息。


有关连接与登录的关键功能已经实现,之后便是相应的UI的设计,以及UI和服务的关联。就不在这里赘述了。


下一步,我将会实现好友列表的获取,以及发送消息,接收消息功能。





更多相关文章

  1. Android 实现答题器功能(通过手势实现翻页效果)
  2. 最全的Android项目结构以及功能
  3. Android 客户端与服务器交互方式
  4. 从零搭建 repo 服务器
  5. Android 实现文件上传功能(upload)
  6. Android截图功能实现
  7. Android仿人人客户端(v5.7.1)——个人主页(二)
  8. android应用中去android市场去评分的功能实现(吐槽一波个人应用上
  9. Android新手入门2016(6)--客户端编程思想的初步思考和Android学习

随机推荐

  1. 【Android(安卓)Advanced Training - 06
  2. Android多人视频聊天应用的开发(三)多人聊
  3. Android(安卓)应用瘦身,从 18MB 到 12.5MB
  4. Android(安卓)UI--ViewPager扩展Tab标签
  5. Android(安卓)实现自定义安全数字键盘(仿
  6. Binder框架在Framework层的C++中的使用
  7. Android(安卓)中px, pd, sp 概念以及如何
  8. 平安好医生、春雨医生、丁香医生三款产品
  9. 绿色守护-锁屏后干掉指定程序,让 Android(
  10. 如何删除Android系统中的内置应用