CN105610701A - 一种即时通信的方法、装置及系统 - Google Patents
一种即时通信的方法、装置及系统 Download PDFInfo
- Publication number
- CN105610701A CN105610701A CN201610156148.3A CN201610156148A CN105610701A CN 105610701 A CN105610701 A CN 105610701A CN 201610156148 A CN201610156148 A CN 201610156148A CN 105610701 A CN105610701 A CN 105610701A
- Authority
- CN
- China
- Prior art keywords
- file
- server
- bag
- client
- root node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
- H04W4/14—Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种即时通信的方法,包括:客户端与服务器进行通信,完成注册,将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过XMPP将该一个或多个子文件包分时传送至所述服务器,以使所述服务器将接收到的所述一个或多个子文件包组装成文件包,并转发该文件包至其他客户端,完成端到端的即时通信。可满足在小内存环境下流畅使用,提高终端的灵活性。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种即时通信的方法、装置及系统。
背景技术
即时通信IM软件作为一种常用的软件,已经在我们的生活中得到了广泛的应用,通过该软件,人们可以随时随地聊天,沟通变得非常方便。目前市面上比较成熟且市场份额比较大的有基于ICQ的QQ,微信,以及国外经常使用的Whatsapp,Plamchat等软件。
现有技术中,基于android操作系统等智能手机平台均采用动态加载的方式进行IM的安装及使用,例如比较常用的QQ,其通信采用的是自定义二进制方式封装协议进行通信,其优点是发送所需要的流量小、保密性好,但是由于其协议封装输出为二进制,与其他IM软件格式不兼容,不利于与其他的IM软件相互通信,即,不具备自述性,扩展性差。且目前QQ的安装包过于大,对于部分内存空间小的智能机,甚至于小内存的功能机而言,其苛刻的使用环境导致主流的IM软件不可用,使用卡顿或导致终端宕机。
发明内容
本发明的目的是克服现有技术中的不足之处,提供一种即时通信的方法、装置及系统,解决了现有技术中由于占用资源高而导致小内存环境下不可使用的问题。
本发明实施例提供一种即时通信的方法,包括:客户端发送注册请求至服务器,所述注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使所述服务器发送短信请求至短信服务平台;
所述客户端接收所述短信服务平台的短信验证码,将该短信验证码发送至所述服务器,完成注册服务;
所述客户端将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包分时传送至所述服务器,以使所述服务器将接收到的所述一个或多个子文件包组装成文件包,并转发该文件包至其他客户端,完成端到端的即时通信。
本发明实施例还提供一种即时通信的终端,包括:
发送模块,用于发送注册请求至服务器,所述注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使所述服务器发送短信请求至短信服务平台;
接收模块,用于接收所述短信服务平台的短信验证码,将该短信验证码发送至所述服务器,完成注册服务;
编码模块,用于将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包通过所述发送模块分时传送至所述服务器,以使所述服务器将接收到的所述一个或多个子文件包组装成文件包,并转发该文件包至其他客户端,完成端到端的即时通信。
本发明实施例还提供一种即时通信的系统,包括:所述客户端,用于发送注册请求至服务器,所述注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使所述服务器发送短信请求至短信服务平台,接收所述短信服务平台的短信验证码,将该短信验证码发送至所述服务器,完成注册服务,将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包分时传送至所述服务器;
所述服务器,用于接收所述客户端发送的注册请求,完成注册服务,接收所述客户端发送的一个或多个文件包,将其组包后转发至其他客户端,完成端到端的通信。
通过本发明实施例提供的方法、终端及系统,客户端通过BASE64分包方式进行文件传输,解决了现有技术中由于占用资源高而导致小内存环境下不可使用的问题,提高了即时通信的灵活性与通用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一的方法流程图;
图2是本发明实施例二的方法流程图;
图3是本发明实施例二的注册请求流程图;
图4是本发明实施例二的文件发送流程图;
图5是本发明实施例二的通信录同步流程图;
图6是本发明实施例二的注销请求流程图;
图7是本发明实施例三的装置架构图;
图8是本发明实施例四的系统结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1是本发明实施例一的方法流程图,如图1所示,该方法包括:
S101、客户端发送注册请求至服务器,该注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使该服务器发送短信请求至短信服务平台;
S102、客户端接收该短信服务平台的短信验证码,将该短信验证码发送至该服务器,完成注册服务;
S103、该客户端将待发送文件基于Base64(用于传输8Bit字节代码的编码方式之一)方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包分时传送至该服务器,以使该服务器将接收到的该一个或多个子文件包组装成文件包,并转发该文件包至其他客户端,完成端到端的即时通信。
可扩展通讯和表示协议(XMPP)可用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。因此,XMPP协议是基于XML流的。
该客户端在发送文件之前,对SAX进行重定义,基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,不在内存中存储整个树结构。
需要说明的是,SAX,全称SimpleAPIforXML,既是一种接口,也是一种软件包。它是一种XML解析的替代方法。SAX不同于DOM解析,它逐行扫描文档,一边扫描一边解析。由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。而本发明实施例中,并非完全套用SAX来进行处理,而是重新定义了SAX,具体采用了如下手段:
在解析第一根节点开始时分配第一内存空间,该第一根节点包括一个或多个子节点;
在解析该第一根节点的第一子节点时分配第二内存空间,进行HOOK处理,在解析完该根节点的第一子节点时释放该第二内存空间;
本发明中,HOOK即回调函数。当完成一个节点解析后根据上下文得到正确的处理函数。比如在登陆完成后,解析到登陆流程完成的节点时,调用登陆完成的存储和页面跳转逻辑。比如在同步通信录时,解析到一个新的通信录项目时,调用存储通信录逻辑。
同理,若该根节点具备多个子节点时,在解析该第一根节点的第N子节点时分配第N+1内存空间,进行HOOK处理,在解析完该根节点的第N子节点时释放该第N+1内存空间,其中N是大于等于2的正整数;
在解析遍历完该第一根节点的所有子节点后,释放该第一根节点的第一内存空间;
同理,在处理第N个根节点时(N大于等于2),处理方式同上。
由于上述方案的内存机制是动态申请动态释放,并在解析完每一子节点时当场释放内存空间,为了后续的内存空间节约空间,可以使得本方法占用资源非常小,大概KB量级即可,保证了在小内存环境中可流畅使用该方案。
同时,客户端还具备同步更新通信录功能,具体如下:
该客户端标记变更的电话本条目;
发送获取好友通信录的请求至该服务器,以使该服务器返回好友通信录至该客户端;
该客户端比对本地的电话本及该好友通信录找出差异,按照时间更新机制,同步该差异项。
此外,该客户端还可以发送接收语音消息,具体为:基于AMR格式发送及接收语音消息,其中,该客户端发送语音消息包括:
对文件属性进行分析,确定该文件是语音消息包;
按照AMR格式对文件进行编码,发送该文件属性及编码后的文件分包发送至该服务器;
该客户端接收语音消息包括:
该客户端接收该服务器发送的文件属性参数及语音文件包;
将该语音文件包按照AMR格式进行解码并组包。
实施例二
本发明实施例提供了一种客户端即时通信的方法,所述即时通信的方法中,执行主体是客户端,该客户端可以是移动终端,该客户端发送基于XMPP协议,具备良好的扩展性,无需转换其格式即可实现与facebook等软件进行消息通信。对于该客户端而言,具备如下几大功能:
GUI:通过联发科的MTK软件平台提供的GDI绘图API实现了20种GUI组件,每个组件使用结构体定义对象结构,每个对象都包含相同的基本属性,它们是DrawHandler,KeyEventHandler和控件位置信息Coordinator,还有一个私有数据指针。当按键事件到来是根据当前页遍历所以属于当前页的控件,并执行控件的KeyEventHandler,如果根据KeyEventHandler的结果决定是否还要继续遍历,类似于责任链模式。当这个遍历完成后根据返回结果遍历当前页的所有控件,根据程序状态,决定是否要更新组件,如果要更新,则调用该控件的DrawHandler函数。每个控件的DrawHandler函数根据自身特点定制绘图。控件的初始化部分则用预定好的宏代替,简化控件的静态初始化。
XMMP协议:此基于XML流,包含MD5特征码计算,BASE64编码和解码,实现RFC6120协议。
存储:聊天消息每个用户生成一个对应的消息记录文件,滚动记录最近的1千条记录,每天记录中包含消息的类型,发送或接收时间,消息内容,发送或接受方。
注册:定制的XMPP协议,收集注册SIM的IMSI号码,发送注册的手机号码+IMSI号码进行注册,服务器调用短信平台向客户端发送短信(SMS)。用户输入验证码后在次将手机号+IMSI号+验证码发送至服务器完成注册。
如图2所示,该即时通信方法如下:
S201、注册申请;
本发明实施例中,注册申请机制可参见图3,具体包括:
S2011、客户端发送注册请求至服务器,该请求中包含客户端的IMSI和/或MSISDN;
S2012、服务器发送短信请求至短信服务平台,所述请求中包含IMSI和/或MSISDN;
S2013、短信服务平台发送短信验证码至服务器及客户端;
S2014、客户端将注册请求发送至服务器,该注册请求中包括电话号码、密码及验证码;
S2015、返回注册结果,完成注册请求。
上述步骤中,服务器端可以是从开源IM服务软件OPENFIRE、基于电话本匹配的实时聊天软件服务端。原来的IM服务软件OPENFIRE并不能进行手机号注册,而只能基于用户名进行用户注册,而本方案中,在上述注册步骤中,服务器关于OPENFIRE的注册模块进行了修改,将用户名注册的逻辑改为了手机号注册,增加了短信验证注册信息的功能。
S202、发送文件至服务器;
如图4所示,发送文件至服务器的流程如下:
S2021、对文件属性进行分析;
客户端对文件属性进行分析,确定待发送的文件类型。
S2022、对该文件包进行分包处理;
客户端基于base64对该文件包进行分包,将该文件包分为数个小文件包,即子文件包,大小相同,并在子文件包的包头添加序号,可选地,可在文件包末尾添加纠错码,该过程较为现有,这里不再详述。
S2023、发送文件属性及子文件包至服务器;
客户端可按照分时发送子文件包的方式发送至服务器。
S2024、接收服务器发送的一个或多个子文件包,进行组包;
当客户端从对方客户端由服务器转发来的消息时,同样按照分包来接收,并进行组包。
该流程从始至终,对于客户端而言,其文件发送接收要在小内存环境下完成,下面是具体介绍,如何在小内存环境下进行上述流程的:
由于客户端是基于XMPP协议,而XMPP协议基于XML流,在解析XML时使用了iksemel库,iksemel是一个XML文件的解析器,最初是设计出来为Jabber应用服务的。提供SAX,DOM和XMPP解析。仅支持UTF8编码。iksemel是用ANSIC语言实现的,任何POSIX兼容的系统上都能用,具有很高的可移植性。
客户端使用重定义的SAX方式,基于流的解析。SAX,全称SimpleAPIforXML,既是一种接口,也是一种软件包。它是一种XML解析的替代方法。SAX不同于DOM解析,它逐行扫描文档,一边扫描一边解析。由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档的解析是个巨大优势。即,SAX在解析XML时策略为边解析处理,不在内存中储存整个树结构。
但是,现有iksemel中的SAX不够彻底,当出现列表项时,iksemel如做法是暂存整个列表,然后处理并释放内存,如下:
<NodeA><-NodeA开始时分配内存
<ItemA><-ItemA开始时分配内存</ItemA>
<ItemB><-ItemB开始时分配内存</ItemB>
<ItemC><-ItemC开始时分配内存</ItemC>
<ItemD><-ItemD开始时分配内存</ItemD>
</NodeA><-NodeA结束时处理freeNodeA的所有子节点内存
<NodeB><-NodeB开始时分配内存
</NodeB><-NodeB结束时处理freeNodeB的所有子节点内存
必然会导致使用的内存量大,不利于节省空间。
本方案中使用的是基于重定义后的SAX,基于重定义后的SAX如下:
<NodeA><-NodeA开始时分配内存
<ItemA><-ItemA开始时分配内存HOOK处理</ItemA><-NodeA结束时释放ItemA节点内存
<ItemB><-ItemB开始时分配内存HOOK处理</ItemB><-NodeB结束时释放ItemB节点内存
<ItemC><-ItemC开始时分配内存HOOK处理</ItemC><-NodeC结束时释放ItemC节点内存
<ItemD><-ItemD开始时分配内存HOOK处理</ItemD><-NodeD结束时释放ItemD节点内存
</NodeA><-NodeA结束时释放NodeA节点内存
<NodeB><-NodeB开始时分配内存
</NodeB><-NodeB结束时处理释放NodeB节点内存
S203、发送语音消息至服务器;
该流程与上一流程相比,其区别在于是基于AMR格式进行文件编码,AMR(AdaptiveMulti-Rate)由欧洲通信标准化委员会提出,是在移动通信系统中使用最广泛的语音标准.其中,录音部分由MTK提供的API,将声音以AMR格式录制到TF卡,由GUI配合完成录放功能。
S204、同步通信录;
如图5所示,该流程如下:
S2041、标记有变动的电话本条目;
对于客户端而言,同步通信录,首先在服务器端得到现存的电话本条目,将条目以HASH的方式缓存到外部的存储器中,依次读取电话本条目,并查找HASH表,若没有则设置添加标置位。遍历完整个电话本后,批量将读取本地电话本并上传服务器,同时发送好友认证请求,对方客户端在收到好友请求后,后台自动匹配成好友。
S2042、获取好友列表;
S2043、返回好友列表;
S2044、比对现有电话本找出差异;
客户端按照时间先后顺序找出其差异项的更新的时间参数,按照新覆盖旧的原则,保留时间新的,更改或删除时间旧的差异项。
S2045、同步差异项。
与服务器进行通信,同步其差异项。
S205、注销;
注销流程是注册的逆过程,其流程如图6所示,如下:
S2051、客户端与服务器建立连接;
S2052、发送特性发现至服务器;
S2053、返回服务器特性;
S2054、发送登录ID至服务器;
S2055、接收服务器发送的挑战码;
S2056、根据密码和挑战码发送加密码;
S2057、验证结果;
S2058、发送出席信息,完成注销。
实施例三
图7是本发明实施例三的客户端(可以是移动终端)组成图,如图7所示,该客户端包括:
发送模块701,用于发送注册请求至服务器,该注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使该服务器发送短信请求至短信服务平台;
接收模块702,用于接收该短信服务平台的短信验证码,将该短信验证码发送至该服务器,完成注册服务;
编码模块703,用于将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包通过该发送模块分时传送至该服务器,以使该服务器将接收到的该一个或多个子文件包组装成文件包,并转发该文件包至其他客户端,完成端到端的即时通信。
其中,该装置还包括:
重定义模块,用于该发送模块在发送文件之前,对SAX进行重定义;
解析模块,用于基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,不在内存中存储整个树结构。
该解析模块基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,具体如下:
在解析第一根节点开始时分配第一内存空间,该第一根节点包括一个或多个子节点;
在解析该第一根节点的第一子节点时分配第二内存空间,进行HOOK处理,在解析完该根节点的第一子节点时释放该第二内存空间;
在解析该第一根节点的第N子节点时分配第N+1内存空间,进行HOOK处理,在解析完该根节点的第N子节点时释放该第N+1内存空间,其中N是大于等于2的正整数;
在解析遍历完该第一根节点的所有子节点后,释放该第一根节点的第一内存空间。
实施例四
图8是本发明实施例四的即时通信的系统组成图,如图8所示,该系统包括服务器401及客户端402,其中,
该客户端402,用于发送注册请求至服务器,该注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使该服务器发送短信请求至短信服务平台,接收该短信服务平台的短信验证码,将该短信验证码发送至该服务器,完成注册服务,将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包分时传送至该服务器;
该服务器401,用于接收该客户端发送的注册请求,完成注册服务,接收该客户端发送的一个或多个文件包,将其组包后转发至其他客户端,完成端到端的通信。
该客户端还用于:
在发送文件之前,对SAX进行重定义,基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,不在内存中存储整个树结构。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的单元或流程并不一定是实施本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种即时通信的方法,其特征在于,包括:
客户端发送注册请求至服务器,所述注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使所述服务器发送短信请求至短信服务平台;
所述客户端接收所述短信服务平台的短信验证码,将该短信验证码发送至所述服务器,完成注册服务;
所述客户端将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包分时传送至所述服务器,以使所述服务器将接收到的所述一个或多个子文件包组装成文件包,并转发该文件包至其他客户端,完成端到端的即时通信。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述XMPP协议基于XML流,所述客户端在发送文件之前,对SAX进行重定义,基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,不在内存中存储整个树结构。
3.根据权利要求2所述的方法,其特征在于,所述基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,包括:
在解析第一根节点开始时分配第一内存空间,所述第一根节点包括一个或多个子节点;
在解析所述第一根节点的第一子节点时分配第二内存空间,进行HOOK处理,在解析完所述根节点的第一子节点时释放所述第二内存空间;
在解析所述第一根节点的第N子节点时分配第N+1内存空间,进行HOOK处理,在解析完所述根节点的第N子节点时释放所述第N+1内存空间,其中N是大于等于2的正整数;
在解析遍历完所述第一根节点的所有子节点后,释放所述第一根节点的第一内存空间。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述客户端标记变更的电话本条目;
发送获取好友通信录的请求至所述服务器,以使所述服务器返回好友通信录至所述客户端;
所述客户端比对本地的电话本及所述好友通信录找出差异,按照时间更新机制,同步该差异项。
5.根据权利要求1--4中任一项所述的方法,其特征在于,所述方法还包括:
所述客户端基于AMR格式发送及接收语音消息,其中,所述客户端发送语音消息包括:
对文件属性进行分析,确定该文件是语音消息包;
按照AMR格式对文件进行编码,发送所述文件属性及编码后的文件分包发送至所述服务器;
所述客户端接收语音消息包括:
所述客户端接收所述服务器发送的文件属性参数及语音文件包;
将所述语音文件包按照AMR格式进行解码并组包。
6.一种即时通信的装置,其特征在于,所述装置包括:
发送模块,用于发送注册请求至服务器,所述注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使所述服务器发送短信请求至短信服务平台;
接收模块,用于接收所述短信服务平台的短信验证码,将该短信验证码发送至所述服务器,完成注册服务;
编码模块,用于将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包通过所述发送模块分时传送至所述服务器,以使所述服务器将接收到的所述一个或多个子文件包组装成文件包,并转发该文件包至其他客户端,完成端到端的即时通信。
7.根据权利要求6所述的装置,其特征在于,所述XMPP协议基于XML流,则所述装置还包括:
重定义模块,用于所述发送模块在发送文件之前,对SAX进行重定义;
解析模块,用于基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,不在内存中存储整个树结构。
8.根据权利要求7所述的装置,其特征在于,所述解析模块基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,包括:
在解析第一根节点开始时分配第一内存空间,所述第一根节点包括一个或多个子节点;
在解析所述第一根节点的第一子节点时分配第二内存空间,进行HOOK处理,在解析完所述根节点的第一子节点时释放所述第二内存空间;
在解析所述第一根节点的第N子节点时分配第N+1内存空间,进行HOOK处理,在解析完所述根节点的第N子节点时释放所述第N+1内存空间,其中N是大于等于2的正整数;
在解析遍历完所述第一根节点的所有子节点后,释放所述第一根节点的第一内存空间。
9.一种即时通信的系统,包括服务器及客户端,其中,
所述客户端,用于发送注册请求至服务器,所述注册请求中包含客户端的国际移动用户识别码IMSI以及移动用户国际号码MSISDN,以使所述服务器发送短信请求至短信服务平台,接收所述短信服务平台的短信验证码,将该短信验证码发送至所述服务器,完成注册服务,将待发送文件基于Base64方式进行文件包的拆分与编码,将文件包拆成一个或多个大小相同的子文件包,并将不同的子文件包添加不同的文件头,通过可扩展通讯和表示协议XMPP将该一个或多个子文件包分时传送至所述服务器;
所述服务器,用于接收所述客户端发送的注册请求,完成注册服务,接收所述客户端发送的一个或多个文件包,将其组包后转发至其他客户端,完成端到端的通信。
10.根据权利要求9所述的系统,其特征在于,所述XMPP协议基于XML流,则所述客户端还用于:
在发送文件之前,对SAX进行重定义,基于重定义后的SAX解析XML流,对XML的树形结构采用边解析边处理方式,不在内存中存储整个树结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610156148.3A CN105610701B (zh) | 2016-03-18 | 2016-03-18 | 一种即时通信的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610156148.3A CN105610701B (zh) | 2016-03-18 | 2016-03-18 | 一种即时通信的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105610701A true CN105610701A (zh) | 2016-05-25 |
CN105610701B CN105610701B (zh) | 2019-01-15 |
Family
ID=55990245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610156148.3A Active CN105610701B (zh) | 2016-03-18 | 2016-03-18 | 一种即时通信的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105610701B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107809409A (zh) * | 2016-09-08 | 2018-03-16 | 北京信威通信技术股份有限公司 | 一种语音数据的发送、接收和交互的方法及装置 |
CN109462605A (zh) * | 2018-12-17 | 2019-03-12 | 北京邮电大学 | 一种im通信系统及其通信方法 |
CN109886412A (zh) * | 2019-01-11 | 2019-06-14 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的持久化存储方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070083599A1 (en) * | 2005-09-27 | 2007-04-12 | Teamon Systems, Inc. | System for transforming application data using xslt extensions to render templates from cache and related methods |
CN102215179A (zh) * | 2011-06-27 | 2011-10-12 | 郭少方 | 一种即时通信注册装置及即时通信注册方法 |
CN104348802A (zh) * | 2013-07-31 | 2015-02-11 | 北京金山云网络技术有限公司 | 快速注册方法、装置、系统及手机、注册服务器 |
CN105282124A (zh) * | 2014-07-24 | 2016-01-27 | 上海未来宽带技术股份有限公司 | 基于xmpp协议的渐进式图片的传输方法及呈现方法 |
CN105354282A (zh) * | 2015-10-30 | 2016-02-24 | 青岛海尔智能家电科技有限公司 | 一种xml文件检索方法及装置 |
-
2016
- 2016-03-18 CN CN201610156148.3A patent/CN105610701B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070083599A1 (en) * | 2005-09-27 | 2007-04-12 | Teamon Systems, Inc. | System for transforming application data using xslt extensions to render templates from cache and related methods |
CN102215179A (zh) * | 2011-06-27 | 2011-10-12 | 郭少方 | 一种即时通信注册装置及即时通信注册方法 |
CN104348802A (zh) * | 2013-07-31 | 2015-02-11 | 北京金山云网络技术有限公司 | 快速注册方法、装置、系统及手机、注册服务器 |
CN105282124A (zh) * | 2014-07-24 | 2016-01-27 | 上海未来宽带技术股份有限公司 | 基于xmpp协议的渐进式图片的传输方法及呈现方法 |
CN105354282A (zh) * | 2015-10-30 | 2016-02-24 | 青岛海尔智能家电科技有限公司 | 一种xml文件检索方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107809409A (zh) * | 2016-09-08 | 2018-03-16 | 北京信威通信技术股份有限公司 | 一种语音数据的发送、接收和交互的方法及装置 |
CN109462605A (zh) * | 2018-12-17 | 2019-03-12 | 北京邮电大学 | 一种im通信系统及其通信方法 |
CN109886412A (zh) * | 2019-01-11 | 2019-06-14 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的持久化存储方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105610701B (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2297663C2 (ru) | Система и способ идентификации и доступа к услугам сети | |
US7596369B2 (en) | Translation of messages between media types | |
US7392040B2 (en) | Method and apparatus for negotiating mobile services | |
US6629130B2 (en) | Method and apparatus for processing electronic mail | |
US8996065B2 (en) | Method for automatically transferring an application in a mobile communication terminal of telecommunication networks | |
CN103957522A (zh) | 一种智能通讯方法、终端及系统 | |
CN1988535A (zh) | 文件存储同步方法、系统及客户端 | |
US11516732B2 (en) | Provisioning an embedded universal integrated circuit card (eUICC) of a mobile communication device | |
CN1917510B (zh) | 一种访问通讯录的方法及其通讯录系统 | |
CN105610701A (zh) | 一种即时通信的方法、装置及系统 | |
TWI275007B (en) | Font data processing system and method | |
CN101771930A (zh) | 一种用户终端、软件托管业务管理系统和管理方法 | |
US20140372500A1 (en) | Method and system for sending webpage content with browser bookmark uniform resource locator | |
CN102170631B (zh) | 业务信息获取方法、设备和系统 | |
CN101964776A (zh) | Ims业务定制的方法、客户端及系统 | |
EP1519600A2 (en) | Providing property data on mobile terminal for services | |
CN101925158A (zh) | 号码详情的获取系统及方法 | |
CN108268528A (zh) | 一种媒体数据的处理方法及终端设备 | |
CN101686212A (zh) | 用于在真实和虚拟社区之间支持可互操作通信的方法 | |
US10616418B2 (en) | Dynamically generated call triggers | |
WO2011116558A1 (zh) | 短消息处理方法及终端 | |
CN102638569B (zh) | 一种文件分发同步方法及系统 | |
CN105391702A (zh) | 音/视频通信方法、终端、服务器及平台 | |
WO2001065480A1 (fr) | Procede de commande d'une carte a puce | |
CN100444651C (zh) | 一种移动通信终端机多媒体消息编辑方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518000 A310, Sojia Science and Technology Innovation Park Complex Building, No. 7 Xixiang Street Aviation Road, Baoan District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Zhao Hua intelligent Limited by Share Ltd Address before: 518000 Hongfa Field Garden, N5 District, Baoan Street, Baoan Central District, Baoan District, Shenzhen City, Guangdong Province Applicant before: SHGENZHEN ZHAOHUA ELECTRONIC TECHNOLOGY CO., LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |