Android 自己的XMPP IM 设计客户端设计

Android XMPP IM 设计 1)


Open fire基于xmpp协议的服务端

android 端的设计:

其中模块由;ConnectManager  模块,AccoutManager 模块,MessageManager 模块,sqlite模块,contentprovide模块,View模块  次要的模块比如 NotifycationManager等。

首先 基本流程是 

1)连接Xmpp服务器

2)连接成功在完成自己的相应业务,比如存储自己的信息,比如好友等

3)开启MessageManager 接收信息,轮询接收到的信息直接存储在数据库中,存储成功刷新内容提供者

4)View模块(Activity)运用LoadManager机制加载被刷新内容提供者的URI,刷新页面

5)发送消息将调用MessageManager 模块,进行发送信息存储在数据库中同时调用ASmark api 发送消息给XMPP服务器。


具体中,大部分设计都是面向接口;

其中主要接口有

public interface IEmployee extends OnInitialization {} 所有管理者都必须继承此类
 
public interface IMWindow extends IMMain,INotification,IInformation im窗口(Activity)

public interface IConnect extends ConnectionListener,IEmployee  连接管理者
public interface MessageObserver extends StanzaListener, MessageListener, IEmployee, OnUpdate,HandlerMessageLeader<Message> 消息管理者
public interface IHierarchy extends IEmployee  辅助IM窗口的 聊天管理者
public interface NotificationManager extends IEmployee 推送管理者
public interface IManagerList extends ILife 管理所有管理者单例的集合类

1, IManagerList 管理所有单例管理者


因为项目中有很多管理者,IManagerList就是把初始化的管理者全部添加进来进行管理。

IManagerList.addManager(IEmployee o);  添加 IEmployee (管理者需要继承此类)

Set<IEmployee> IManagerList.getAllManager(); 返回所有管理者

2,IConnect 复制IM连接模块的接口

里面基本暴露通用一些方法。比如 addLoginListener() 登录监听 ;isConnect()是否连接;disconnect()断开连接,init()初始化;runConnectThread() 连接登录等;

3,MessageObserver

此接口类比较多,重点有;基本上涵盖业务功能。创建单聊,群聊。发送消息,删除消息等,重发等机制。key可以自己定义可以使房间id或者其他能代表此次聊天唯一值就可以了。

其中MessageObsever此类继承了smark StanzaListener


接口。先贴出具体(MessageManager 我的代码里的实现类)实现看看;



这里代码已经分得很多情况。


4 前端部分接口

    1)IMWondow 拥有生命周期,部分业务接口它代表一个聊天界面



     2)IMMain 被IMWondow继承


    3)ILife 管理 IMWindow周期 ,其中IManagerList 也继承此接口


    4)IHierarchy 提供IMWindow 层级暴露接口


今天到这里,只是写接口层一些设计。第一次写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值