ActivityMQ android开发

消息推送中另一个重要的关键因素------消息协议。目前市面上,即百度上出

现的基本都是xmpp或者mqtt这两种协议。 xxmp使用的是传统的xml文本形式的数据类型作为通讯协议,这种xml形式在前几年基本

都会应用到所有的IM类型应用,因为其开源方式和google官方使用的推送作为例子的 广泛认知,基本上这种方式成了主流。包括早

其的米聊,前期也是使用xmpp的协议。最具代表的就是极光推送了。但这种形式的xml格式借用了太多的数据流量,在现在这个通

讯数据那么多的情况下,会耗费掉大量流量。所以我们放弃掉。

        最后,我组的后端工程师找到了另一套开源的消息管理机制---------ActivityMQ。这个开源的框架的好处是支持自定义协议,它的

框架只会帮你处理一件事:保存你的消息队 列,向你目的的socket发送消息,而且,它也是 开源的 ~!因为其为我们提供了所需的消

息管理机制,我们服务器就不再为消息发送的机制来进行过多的开发,当然,开源的 嘛,很多东西还是需要改为自己项目上需要

的。  而,真是这个服务器消息框架,促使我们暂时放弃了第三种消息推送机制。为何呢?请继续往下。
    
       消息推送机制上,我们还是选择了第二种,只用socket来进行推送,这样服务器与客户端的逻辑就会变得鲜明一点,如下图:


    
       上图可知,签收消息,是为了让服务器知道,客户端已经顺利接受了这条消息了,服务器可以在消息队列中把该条消息移除了。

没有这个签收机制的话,服务器的推送消息 队列中会一直保留这条消息,会一直发送。为何要引入 签收机制 ?因为在移动网络或者

任何网络情况先,并不能预知是否服务器的信息顺利呈现给了客户端用户的。其中的 情况可能是,消息发送到了客户端了,但是可

能客户端在保存入数据库或者解释数据是出错,那么这条消息就会消失掉,我们俗称“被吃了”,并且在网络传输中,肯定会出现一

一定程度的掉包情况,所以这个签收机制就变得必不可少了。

      而第三种的方式,服务器与客户端之间的逻辑大致如下:


          由上图可知,第三种推送机制,类似于TCP协议一样,通过三次握手来确定一次会话,但正是这样的机制,其中包含多了两个步

骤,因此我们在未确定我们的App的将来规 模以及时间的关系,我们果断采用省时省力的第二种,但我们深深地知道,当下一次大版

本来的时候,需要转换成第三种方式,原因上述已经说过了。
     

        对于消息安全,就是防止一些非法黑客,对我们客户端与服务器端会话进行抓包。所以我们需要对我们的会话的数据进行加密,

看过微信的加密方式我们都知道,首先,微信是利用第三种消息推送机制,他们每一次握手的过程可以与服务器交换一个新的

SyncKey来进行信息加密,这种动态加密方式,强化了消息传输中的保密性,非常值得借鉴学习,而且这种机制对于消息状态同

步,增量,有序传输等需求都能满足。长连接通知/短连接获取与确认的方式是最应该被推荐了,但时间关系,我们就使用简单的

Token加密,非常危险的方式,一旦给人获取到Token的信息与加密方式,这种密文就没有任何意义。


       消息离线,服务端收到要将客户端A发出的消息发送给客户端B的时候,B并不在线,就是说,B并没有与服务器有

socket链接。此时应当怎么处理消息呢?我们可以把这些未经过签收的消息,放置在一个新的消息队列中。当客户端

下次链接服务器的时候,就先调用这个未接收的消息队列中的信息,然后发送给客户端。所以我们利用userId和与

token标示一个消息,再查找这种未签收的消息就利用userid查找,然后校验token,验证用户是否在线,在线,发出。



理解Activity与Fragment的生命周期与关系,android-lifecycle:https://github.com/xxv/android-lifecycle

Android中使用的各种lib库:AndroidLibs :https://android-libs.com/

关于AndroidUi设计与动效:http://androidniceties.tumblr.com/

webview的安全js框架:https://github.com/pedant/safe-java-js-webview-bridge

webview的官方开发团队的用法示例:https://github.com/GoogleChrome/chromium-webview-samples

IDApro6.6 动态调试dex : http://drops.wooyun.org/mobile/5942

动态调试smali:http://bbs.pediy.com/showthread.php?t=189610

Android优秀界面集合:http://androidniceties.tumblr.com/


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值