teamtalk 笔记

最近在看由蘑菇街开源的企业通讯软件(基于netty 3.x),自己写个笔记。

在使用eventBUS使得代码做了很好的解耦,但是可读性差了很多。

整体介绍:

1、IMService  IMService 负责所有IMManager的初始化与reset   并且Manager的状态的改变 也会影响到IMService的操作

2、在IMService中 几个主要的管理对象如下:

IMLoginManager  登陆

IMContactManager 登陆、网络连接成功等处理

IMSocketManager Socket通讯 业务层的管理

IMHeartBeatManager 心跳包管理

IMMessageManager   消息管理

SocketThread  Socket通讯的管理 初始化netty框架

ListenerQueue 消息监听队列 (消息异步收发 超时等处理)


登陆过程 :部分 event事件未处理 如: triggerEvent(SocketEvent.REQ_MSG_SERVER_ADDRS_SUCCESS);
     1.客户端通过域名获得login_server的地址
     2.客户端通过login_server获得msg_serv的地址
     3.客户端带着用户名密码对msg_serv进行登录
     4.msg_serv转给db_proxy进行认证(do not care on client)
     5.将认证结果返回给客户端


消息文本发送过程:IMMessageManager  中sendMessage (消息的msgID为0 状态为发送中)更新sql ->异步处理(监听接口中更新后台返回msgID 更新sql 再一次更新UI)同时更新UI

关于netty解码器 LengthFieldBasedFrameDecoder类 参考http://blog.csdn.net/zzycgfans/article/details/6732752

更多netty http://cache.baiducontent.com/c?m=9d78d513d99f16e91ea680394d48d83c5f12c2743da4cd082383d50ed8735b361c3bfe&p=aa6ac64ad49e11a05bee9f241c4092&newp=9033c816d9c117ff57ee977544548a231601d13523808c0a3b8fd125906f5c17&user=baidu&fm=sc&query=netty&qid=b672dde4000030dc&p1=2







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值