即时通讯
乐不思书
旅游,好学,阅读
展开
-
smack 源码分析- PacketWriter (android上实现长连接)2
上一篇smack 源码分析一(android上实现长连接) 整体分析了smack长连接的流程, 本篇将详细介绍PacketWriter.PacketWriter是在上篇在介绍initConnection()方法中创建的,那么详细看下PacketWriter的实现:[java] view plaincopyprot转载 2015-05-06 17:27:08 · 399 阅读 · 0 评论 -
smack 源码分析一(android上实现长连接)【1】
前段时间应一个项目需求: 要求给终端短信, 联系人信息做一个云存储云备份及云端远程控制终端并且云端能够推送消息到终端的需求. 这需要在终端与云端建立一个长连接以便云端消息能及时推送到终端. 所以项目中用到了smack框架. smack功能强大, 远不止本文所写的这点内容. 现在我只将对smack的理解以及项目中对smack的使用心得总结并记录下来, 一则给大家分享 , 二则也算是一个转载 2015-05-06 17:26:01 · 571 阅读 · 0 评论 -
aSmack源码分析register过程分析
register过程分析RegisterTask这个task在运行中,添加了一个监听,上面说道的PacketReader中有一个消息机制,在不停的解析服务器返回的结果,然后将解析过后的包分发给各个监听器(观察者),而register中就注册了一个监听器,比较有意思的是,监听器被注册时还加了一个过滤器,这个过滤器的目的是监听器只接收自己感兴趣的内容,这个设计真的很赞。这样就不必在数据源头转载 2015-05-06 17:22:58 · 315 阅读 · 0 评论 -
smack源码分析前期准备——XmpPullParser
smack主要封装了xmpp协议,提供更方便的api去操作xmpp协议,具体详细可以到这边文章了解:http://www.cnblogs.com/not-code/archive/2011/07/16/2108369.html鉴于xmpp协议都是以xml格式来传输,因此源码中解析协议都是用到XmpPullParser来解析xml。因此本文先介绍XmpPullParser的用法,在下转载 2015-05-06 17:31:55 · 389 阅读 · 0 评论 -
关于asmack的packetwriter
在研究如何实现Pushing功能期间,收集了很多关于Pushing的资料,其中有一个androidnp开源项目用的人比较多,但是由于长时间没有什么人去维护,听说bug的几率挺多的,为了以后自己的产品稳定些,所以就打算自己研究一下asmack的源码,自己做一个插件,androidnp移动端的源码中包含了一个叫做asmack的jar。Reader和Writer在asmack中有转载 2015-05-06 17:22:19 · 488 阅读 · 0 评论 -
关于xmpp的一些解释
一、定义 XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接受的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。 XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允转载 2015-05-06 17:18:30 · 620 阅读 · 0 评论 -
手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题
asmact自动重连要能进行,那么asmact必须要使用ReconnectionManager类。可是在asmact的ConnectionConfiguration源码中,没有任何加载ReconnectionManager类的代码,所以在客户端单独使用如下设置是不起作用的:1configuration.setReconnectionAllowed转载 2015-05-06 17:34:15 · 819 阅读 · 0 评论 -
smack 源码分析- PacketReader (android上实现长连接)【3】
smack 源码分析- PacketWriter (android上实现长连接) 介绍完PacketWriter 之后, 接下来分析PacketReader. PacketReader的作用主要用来接收云端推送的消息并解析然后调用相应的监听器完成相关的操作.什么都别说, 先看代码:[java] view plaincopy//转载 2015-05-06 17:28:45 · 652 阅读 · 0 评论 -
aSmack源码分析PacketReader
PacketReaderPacketReader所有的核心逻辑都在一个线程中完成的,PacketReader的工作很专注,同样的在一个while loop中 不停的解析、刷新reader对象、同时作为事件源发送解析过后的各种Packet,解析这里用的是Android独特的Pull解析,Pull解析的特点事件驱动,在这里被完全的利用了起来,随着不同的标签,PacketReader都会转载 2015-05-06 17:23:46 · 395 阅读 · 0 评论 -
关于xmpp的协议原理分析
XMPP协议简介XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利转载 2015-05-06 17:19:55 · 427 阅读 · 0 评论 -
asmack实现端到端的消息回执(XEP-0184: Message Delivery Receipts)
要想保证信息的传输,目前在smack/asmack + openfire架构上,我个人想到有两种实现方式:1.端到端确保发送(类似短信)。其实这个就是xmpp协议的XEP-0184: Message Delivery Receipts.里边为了确保消息的到达,需要接收方返回回执,这样发送方就知道对方是否确切收到消息。当然咯,接收回执过程中也可能出现断线,转载 2015-05-06 17:35:07 · 614 阅读 · 0 评论 -
smack源码分析——接收消息以及如何解析消息
在android里面用的smack包其实叫做asmack,该包提供了两种不同的连接方式:socket和httpclient。该并且提供了很多操作xmpp协议的API,也方便各种不同自定义协议的扩展。我们不需要自己重新去定义一套接收机制来扩展新的协议,只需继承然后在类里处理自己的协议就可以了。而本文今天主要说两点,一点就是消息是如何接收的,另一点就是消息是如何通知事件的。 总转载 2015-05-06 17:33:06 · 570 阅读 · 0 评论 -
asmack 注册 登陆 聊天 多人聊天室 文件传输
XMPP协议简介XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMP转载 2015-05-06 17:29:58 · 745 阅读 · 0 评论