即时通信方法及系统的制作方法

文档序号:7820488阅读:146来源:国知局
即时通信方法及系统的制作方法
【专利摘要】本发明提供一种即时通信方法及系统,本发明即时通信方法,包括:源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件,并向服务器发送文件传输请求消息,由服务器向目的客户端发送文件传输请求消息,目的客户端接收服务器发送的文件传输请求消息并对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥,并采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件,从而保证了待发送文件在传输过程中的安全性。
【专利说明】即时通信方法及系统

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种即时通信方法及系统。

【背景技术】
[0002]由于可扩展通讯和表不协议(ExtensibleMessaging and Presence Protocol,简称XMPP)的扩展性和灵活性较好,因此,XMPP协议成为当前的即时通信主要采用的协议。
[0003]XMPP支持S0CKS5字节流传输,现有技术中,一般通过S0CKS5传输文件,S0CKS5是一个代理协议,文件传输具体过程为:源客户端与S0CKS5代理服务器建立连接,连接建立后源客户端向代理服务器发送代理请求消息,代理服务器确定能够进行代理时向源客户端发送代理响应消息,源客户端则可以将文件发送给代理服务器,由代理服务器将字节流格式的文件转发给目的客户端,而S0CKS5代理服务器直接发送待发送文件的字节流,未对待发送文件进行安全处理,因此,不能保证文件传输过程中文件的安全性。


【发明内容】

[0004]本发明提供一种即时通信方法及系统,以解决现有技术中传输文件时不能保证文件传输过程中文件的安全性的问题。
[0005]本发明的第一个方面提供一种即时通信方法,包括:
[0006]源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件;
[0007]所述源客户端向服务器发送文件传输请求消息,所述文件传输请求消息包含所述源客户端的标识信息、所述加密后的待发送文件以及对所述待发送文件进行加密的加密秘钥;
[0008]所述服务器向目的客户端发送所述文件传输请求消息;
[0009]所述目的客户端接收所述服务器发送的所述文件传输请求消息;
[0010]所述目的客户端对所述文件传输请求消息进行解析,获得所述源客户端的标识信息、所述加密后的待发送文件以及所述加密秘钥;
[0011]所述目的客户端采用所述加密秘钥对所述加密后的待发送文件进行解密,获得解密后的待发送文件,并对所述解密后的待发送文件进行解码,获得所述待发送文件。
[0012]在上述即时通信方法的一个实施例中,在所述源客户端对获取的待发送文件进行编码之前,还包括:
[0013]所述源客户端向所述服务器发送连接请求消息,所述连接请求消息包含所述源客户端的标识信息;
[0014]所述服务器接收所述连接请求消息,并经判断获知线程池中存在空闲线程,则为所述源客户端分配一个空闲线程,并通过所述服务器分配的空闲线程建立与所述源客户端的连接。
[0015]在上述即时通信方法的一个实施例中,还包括:
[0016]所述服务器经判断获知所述线程池中不存在空闲线程,则判断所述线程池中的线程的数目是否达到设定值;
[0017]所述服务器若判断获知所述线程池中的线程的数目未达到设定值,则创建新线程,并通过创建的所述新线程建立与所述源客户端的连接。
[0018]在上述即时通信方法的一个实施例中,还包括:
[0019]所述服务器若判断获知所述线程池中的线程的数目达到设定值,则将所述源客户端进入等待队列中,并通过轮询方式判断是否存在释放的空闲线程;
[0020]所述服务器若判断获知存在释放的空闲线程,则通过所述释放的空闲线程建立与所述源客户端的连接。
[0021]在上述即时通信方法的一个实施例中,所述源客户端若判断获知当前的位置服务功能已经开启,则启用全球定位系统GPS进行定位,并判断在预设时间内是否能通过GPS定位获得所述源客户端的位置信息;
[0022]所述源客户端若判断获知在预设时间内不能通过GPS定位获得所述源客户端的位置信息,则启用移动网络获取所述源客户端的位置信息;
[0023]所述源客户端通过所述服务器向所述目的客户端发送所述源客户端的位置信息。
[0024]本发明的第二个方面提供一种即时通信系统,包括:源客户端、服务器和目的客户端;
[0025]所述源客户端,用于对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件;向服务器发送文件传输请求消息,所述文件传输请求消息包含所述源客户端的标识信息、所述加密后的待发送文件以及对所述待发送文件进行加密的加密秘钥;
[0026]所述服务器,用于向目的客户端发送所述文件传输请求消息;
[0027]所述目的客户端,用于接收所述服务器发送的所述文件传输请求消息;对所述文件传输请求消息进行解析,获得所述源客户端的标识信息、所述加密后的待发送文件以及所述加密秘钥;采用所述加密秘钥对所述加密后的待发送文件进行解密,获得解密后的待发送文件,并对所述解密后的待发送文件进行解码,获得所述待发送文件。
[0028]在上述即时通信系统的一个实施例中,所述源客户端,还用于在所述源客户端对获取的待发送文件进行编码之前,向所述服务器发送连接请求消息,所述连接请求消息包含所述源客户端的标识信息;
[0029]所述服务器,还用于接收所述连接请求消息,并经判断获知线程池中存在空闲线程,则为所述源客户端分配一个空闲线程,并通过所述服务器分配的空闲线程建立与所述源客户端的连接。
[0030]在上述即时通信系统的一个实施例中,所述服务器,还用于经判断获知所述线程池中不存在空闲线程,则判断所述线程池中的线程的数目是否达到设定值;若判断获知所述线程池中的线程的数目未达到设定值,则创建新线程,并通过创建的所述新线程建立与所述源客户端的连接。
[0031]在上述即时通信系统的一个实施例中,所述服务器,还用于若判断获知所述线程池中的线程的数目达到设定值,则将所述源客户端进入等待队列中,并通过轮询方式判断是否存在释放的空闲线程;若判断获知存在释放的空闲线程,则通过所述释放的空闲线程建立与所述源客户端的连接。
[0032]在上述即时通信系统的一个实施例中,所述源客户端,还用于若判断获知当前的位置服务功能已经开启,则启用全球定位系统GPS进行定位,并判断在预设时间内是否能通过GPS定位获得所述源客户端的位置信息;若判断获知在预设时间内不能通过GPS定位获得所述源客户端的位置信息,则启用移动网络获取所述源客户端的位置信息;通过所述服务器向所述目的客户端发送所述源客户端的位置信息。
[0033]本发明提供的即时通信方法及系统,通过源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件,并向服务器发送文件传输请求消息,由服务器向目的客户端发送文件传输请求消息,目的客户端接收服务器发送的文件传输请求消息并对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥,并采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件,从而保证了待发送文件在传输过程中的安全性。

【专利附图】

【附图说明】
[0034]图1为本发明实施例一所提供的即时通信方法的流程图;
[0035]图2为本发明实施例二所提供的即时通信方法的流程图;
[0036]图3为本发明实施例三所提供的即时通信系统300的结构示意图。

【具体实施方式】
[0037]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]图1为本发明实施例一所提供的即时通信方法的流程图。本实施例的方法包括如下步骤:
[0039]S110、源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件。
[0040]待发送文件例如可以为文档、图片等文件,源客户端获取到待发送文件后,可以获得待发送文件的二进制格式字节流,对二进制格式字节流进行编码,可以使用base64对图片或文件等待发送文件进行编码,再对编码后的待发送文件进行加密,获得加密后的待发送文件,加密可以采用IDEA加密算法对编码后的待发送文件进行加密。
[0041]S120、源客户端向服务器发送文件传输请求消息,文件传输请求消息包含源客户端的标识信息、加密后的待发送文件以及对待发送文件进行加密的加密秘钥。
[0042]源客户端的标识信息可以为源客户端的用户名信息、物理地址信息。
[0043]S130、服务器向目的客户端发送文件传输请求消息。
[0044]S140、目的客户端接收服务器发送的文件传输请求消息。
[0045]S150、目的客户端对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥。
[0046]S160、目的客户端采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件。
[0047]具体的,通过源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件,并向服务器发送文件传输请求消息,由服务器向目的客户端发送文件传输请求消息,目的客户端接收服务器发送的文件传输请求消息并对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥,并采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件。
[0048]本实施例提供的即时通信方法,通过源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件,并向服务器发送文件传输请求消息,由服务器向目的客户端发送文件传输请求消息,目的客户端接收服务器发送的文件传输请求消息并对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥,并采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件,从而保证了待发送文件在传输过程中的安全性。
[0049]图2为本发明实施例二所提供的即时通信方法的流程图。参照图2,本实施例的方法可以包括:
[0050]S201、源客户端向服务器发送连接请求消息,连接请求消息包含源客户端的标识信息。
[0051]S202、服务器接收连接请求消息,判断线程池中是否存在空闲线程,若存在空闲线程,则执行S203,否则执行S204。
[0052]S203、服务器为源客户端分配一个空闲线程,并通过分配的空闲线程建立与源客户端的连接,接着执行S207。
[0053]S204、服务器判断线程池中的线程的数目是否达到设定值。若线程池中的线程的数目未达到设定值则执行S205,若线程池中的线程的数目达到设定值则执行S206。
[0054]S205、服务器创建新线程,并通过创建的新线程建立与源客户端的连接,接着执行S207。
[0055]S206、服务器将源客户端进入等待队列中,并通过轮询方式判断是否存在释放的空闲线程,服务器若判断获知存在释放的空闲线程,则通过释放的空闲线程建立与源客户端的连接,接着执行S207。
[0056]需要说明的是,可以采用openfire服务器作为本实施例中提及的服务器,openfire服务器具有很高的效率和性能,openfire服务器可以及时处理大量的客户端连接,单台openfire服务器的承载最大并发量可以达到10000以上。例如,在S202至S206中,针对每个客户端的连接请求,openfire服务器可以创建线程来响应客户端的连接请求,同时创建线程池管理线程,提高openfire服务器的执行效率,线程池中如果有10000个空闲线程,则openfire服务器可以同时处理10000个客户端的连接请求。并且线程池中的线程数目的大小根据服务器在运行的过程中接收到的客户端请求的数量进行自动调整,例如如果长时间没有客户端请求,则可以销毁线程,当客户端有请求而线程池中没有空闲线程并且线程池中线程数目没有达到设定值时,则可以创建新线程,(设定值为允许创建的线程数目的最大值)时,则将发送连接请求的客户端进入等待队列中,直至线程池中有空闲线程。并且,客户端退出的时候,openfire服务器可以将线程回收到线程池中,从而可以对线程进行有效管理,提高服务器资源的利用率。
[0057]S207、源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件。
[0058]S208、源客户端向服务器发送文件传输请求消息,文件传输请求消息包含源客户端的标识信息、加密后的待发送文件以及对待发送文件进行加密的加密秘钥。
[0059]S209、服务器向目的客户端发送文件传输请求消息。
[0060]S210、目的客户端接收服务器发送的文件传输请求消息。
[0061]S211、目的客户端对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥。
[0062]S212、目的客户端采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件。
[0063]需要说明的是,源客户端也可以分享当前的位置信息,通过全球定位系统(GlobalPosit1ning System,简称GPS)和移动网络双重定位当前的位置信息,当前的位置信息例如可以为经纬度信息,获得当前的位置信息后可以分享给其他客户端。通过GPS和移动网络双重定位过程可以通过如下方式实现:
[0064]源客户端若判断获知当前的位置服务功能已经开启,则启用全球定位系统GPS进行定位,并判断在预设时间内是否能通过GPS定位获得源客户端的位置信息;源客户端若判断获知在预设时间内不能通过GPS定位获得源客户端的位置信息,则启用移动网络获取源客户端的位置信息。源客户端定位到其位置信息后,可以通过服务器向目的客户端发送源客户端的位置信息。
[0065]本实施例提供的即时通信方法,通过服务器接收连接请求消息后,判断是否存在空闲线程,若存在空闲线程则为源客户端分配一个空闲线程,若不存在空闲线程,则判断线程池中的线程的数目是否达到设定值,若没有达到设定值,则重新创建一个新的线程分配给源客户端,若达到设定值,则将源客户端放入等待队列中,并通过轮询方式判断是否有释放的空闲线程,直到有空闲线程时,则可以为源客户端分配空闲线程,从而提高服务器资源的使用效率,实现服务器资源的有效利用。并且通过源客户端对获取的待发送文件进行编码、加密,以及目的客户端对接收的文件进行解密、解码处理,从而保证了待发送文件在传输过程中的安全性。
[0066]图3为本发明实施例三所提供的即时通信系统300的结构示意图。参照图3,该即时通信系统包括:源客户端310、服务器320和目的客户端330。
[0067]源客户端310用于对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件;向服务器发送文件传输请求消息,文件传输请求消息包含源客户端的标识信息、加密后的待发送文件以及对待发送文件进行加密的加密秘钥;服务器320用于向目的客户端发送文件传输请求消息;目的客户端330用于接收服务器发送的文件传输请求消息;对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥;采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件。
[0068]需要说明的是,待发送文件例如可以为文档、图片等文件,源客户端获取到待发送文件后,可以获得待发送文件的二进制格式字节流,对二进制格式字节流进行编码,可以使用base64对图片或文件等待发送文件进行编码,再对编码后的待发送文件进行加密,获得加密后的待发送文件,加密可以采用IDEA加密算法对编码后的待发送文件进行加密。
[0069]本实施例提供的即时通信系统,通过源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件,并向服务器发送文件传输请求消息,由服务器向目的客户端发送文件传输请求消息,目的客户端接收服务器发送的文件传输请求消息并对文件传输请求消息进行解析,获得源客户端的标识信息、加密后的待发送文件以及加密秘钥,并采用加密秘钥对加密后的待发送文件进行解密,获得解密后的待发送文件,并对解密后的待发送文件进行解码,获得待发送文件,从而保证了待发送文件在传输过程中的安全性。
[0070]进一步的,源客户端310,还用于在源客户端对获取的待发送文件进行编码之前,向服务器发送连接请求消息,连接请求消息包含源客户端的标识信息;
[0071]服务器320,还用于接收连接请求消息,并经判断获知线程池中存在空闲线程,则为源客户端分配一个空闲线程,并通过服务器分配的空闲线程建立与源客户端的连接。
[0072]进一步的,服务器320,还用于经判断获知线程池中不存在空闲线程,则判断线程池中的线程的数目是否达到设定值;若判断获知线程池中的线程的数目未达到设定值,则创建新线程,并通过创建的新线程建立与源客户端的连接。
[0073]进一步的,服务器320,还用于若判断获知线程池中的线程的数目达到设定值,则将源客户端进入等待队列中,并通过轮询方式判断是否存在释放的空闲线程;若判断获知存在释放的空闲线程,则通过释放的空闲线程建立与源客户端的连接。
[0074]进一步的,源客户端310,还用于若判断获知当前的位置服务功能已经开启,则启用全球定位系统GPS进行定位,并判断在预设时间内是否能通过GPS定位获得源客户端的位置信息;若判断获知在预设时间内不能通过GPS定位获得源客户端的位置信息,则启用移动网络获取源客户端的位置信息;通过服务器向目的客户端发送源客户端的位置信息。
[0075]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种即时通信方法,其特征在于,包括: 源客户端对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加S后的待发送文件; 所述源客户端向服务器发送文件传输请求消息,所述文件传输请求消息包含所述源客户端的标识信息、所述加密后的待发送文件以及对所述待发送文件进行加密的加密秘钥;所述服务器向目的客户端发送所述文件传输请求消息; 所述目的客户端接收所述服务器发送的所述文件传输请求消息; 所述目的客户端对所述文件传输请求消息进行解析,获得所述源客户端的标识信息、所述加密后的待发送文件以及所述加密秘钥; 所述目的客户端采用所述加密秘钥对所述加密后的待发送文件进行解密,获得解密后的待发送文件,并对所述解密后的待发送文件进行解码,获得所述待发送文件。
2.根据权利要求1所述的方法,其特征在于,在所述源客户端对获取的待发送文件进行编码之前,还包括: 所述源客户端向所述服务器发送连接请求消息,所述连接请求消息包含所述源客户端的标识信息; 所述服务器接收所述连接请求消息,并经判断获知线程池中存在空闲线程,则为所述源客户端分配一个空闲线程,并通过所述服务器分配的空闲线程建立与所述源客户端的连接。
3.根据权利要求2所述的方法,其特征在于,还包括: 所述服务器经判断获知所述线程池中不存在空闲线程,则判断所述线程池中的线程的数目是否达到设定值; 所述服务器若判断获知所述线程池中的线程的数目未达到设定值,则创建新线程,并通过创建的所述新线程建立与所述源客户端的连接。
4.根据权利要求3所述的方法,其特征在于,还包括: 所述服务器若判断获知所述线程池中的线程的数目达到设定值,则将所述源客户端进入等待队列中,并通过轮询方式判断是否存在释放的空闲线程; 所述服务器若判断获知存在释放的空闲线程,则通过所述释放的空闲线程建立与所述源客户端的连接。
5.根据权利要求1?4中任一项所述的方法,其特征在于,还包括: 所述源客户端若判断获知当前的位置服务功能已经开启,则启用全球定位系统GPS进行定位,并判断在预设时间内是否能通过GPS定位获得所述源客户端的位置信息; 所述源客户端若判断获知在预设时间内不能通过GPS定位获得所述源客户端的位置信息,则启用移动网络获取所述源客户端的位置信息; 所述源客户端通过所述服务器向所述目的客户端发送所述源客户端的位置信息。
6.一种即时通信系统,其特征在于,包括:源客户端、服务器和目的客户端; 所述源客户端,用于对获取的待发送文件进行编码,并对编码后的待发送文件进行加密,获得加密后的待发送文件;向服务器发送文件传输请求消息,所述文件传输请求消息包含所述源客户端的标识信息、所述加密后的待发送文件以及对所述待发送文件进行加密的加密秘钥; 所述服务器,用于向目的客户端发送所述文件传输请求消息; 所述目的客户端,用于接收所述服务器发送的所述文件传输请求消息;对所述文件传输请求消息进行解析,获得所述源客户端的标识信息、所述加密后的待发送文件以及所述加密秘钥;采用所述加密秘钥对所述加密后的待发送文件进行解密,获得解密后的待发送文件,并对所述解密后的待发送文件进行解码,获得所述待发送文件。
7.根据权利要求6所述的系统,其特征在于, 所述源客户端,还用于在所述源客户端对获取的待发送文件进行编码之前,向所述服务器发送连接请求消息,所述连接请求消息包含所述源客户端的标识信息; 所述服务器,还用于接收所述连接请求消息,并经判断获知线程池中存在空闲线程,则为所述源客户端分配一个空闲线程,并通过所述服务器分配的空闲线程建立与所述源客户端的连接。
8.根据权利要求7所述的系统,其特征在于,所述服务器,还用于经判断获知所述线程池中不存在空闲线程,则判断所述线程池中的线程的数目是否达到设定值;若判断获知所述线程池中的线程的数目未达到设定值,则创建新线程,并通过创建的所述新线程建立与所述源客户端的连接。
9.根据权利要求8所述的系统,其特征在于,所述服务器,还用于若判断获知所述线程池中的线程的数目达到设定值,则将所述源客户端进入等待队列中,并通过轮询方式判断是否存在释放的空闲线程;若判断获知存在释放的空闲线程,则通过所述释放的空闲线程建立与所述源客户端的连接。
10.根据权利要求6?9中任一项所述的系统,其特征在于,所述源客户端,还用于若判断获知当前的位置服务功能已经开启,则启用全球定位系统GPS进行定位,并判断在预设时间内是否能通过GPS定位获得所述源客户端的位置信息;若判断获知在预设时间内不能通过GPS定位获得所述源客户端的位置信息,则启用移动网络获取所述源客户端的位置信息;通过所述服务器向所述目的客户端发送所述源客户端的位置信息。
【文档编号】H04L29/06GK104410619SQ201410676160
【公开日】2015年3月11日 申请日期:2014年11月21日 优先权日:2014年11月21日
【发明者】王文治 申请人:中国联合网络通信集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1