[发明专利]一种即时通信的方法、系统及服务器有效
申请号: | 201210062366.2 | 申请日: | 2012-03-09 |
公开(公告)号: | CN103312586B | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | 杨春龙;赵一方;张跃华 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58 |
代理公司: | 北京同达信恒知识产权代理有限公司11291 | 代理人: | 黄志华 |
地址: | 100085 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 即时 通信 方法 系统 服务器 | ||
技术领域
本发明涉及即时通信技术,更具体地说,涉及一种即时通信的方法、系统及服务器。
背景技术
随着信息技术的迅猛的发展,SNS(Social Networking Service,社会化网络服务)产品大为流行,聊天交友类系统则是此类产品中不可或缺的基本功能组件。鉴于现有的SNS产品多是基于浏览器的,因此,需要与之配合的基于浏览器的即时通信产品。然而,当前绝大多数即时通信产品(如QQ、MSN等)却都是基于桌面的。鉴于HTTP协议自身的局限性,如非连接和无状态特性等等,基于浏览器的即时通信产品的状态管理比较困难。
传统网页即时通信系统信息交互模式,现有技术中一般都采用C/S(client/server,客户端/服务器)架构形式,其中即时通信客户端软件安装于用户终端上,用于提供数据存储、消息转发、状态保存等功能,而设置于网络侧的服务器用于提供输入输出、信息显示、界面操作等功能。通过客户端发出请求、服务器端响应的方式工作,这种方式并不能满足很多现实应用的需求。即时通信系统需要服务器能实时地将更新的信息传送到客户端,而无需客户端发出请求。
现有技术中,当前网页即时通信系统的信息获取有以下两种模式:
第一、浏览器每隔一定时间请求服务器来获取最新消息,这种模式称之为轮询;
第二、服务器维持与浏览器长时间的连接来传递数据,长连接的技术称之为Comet连接。
在上述第一种模式中,客户端以用户可定义的时间间隔去检查服务器上的最新数据,如此很容易就能发现轮询方式的主要缺点是产生了大量的传输浪费。因为可能大部分向服务器的请求是无效的,也就是说,客户端等待发生的事件没有发生,如果有大量的客户端的话,这种网络传输的浪费是非常严重的。特别是对于服务器端很久才更新的应用程序来讲,比如邮件程序,这种浪费就更是巨大了。并且,对服务器端处理请求的能力也相应提高了要求。如果很长时间才向服务器端发送一次请求的话,客户端就不能的得到及时的响应。因此,这种方式要么导致较高的网络流量(检查频率过高),要么导致错过更新的数据(检查频率过低)。
另一方面,如果使用Comet技术的话,虽然不存在轮询模式的问题,但是,要求客户端和服务器端必须保持一个长连接,一般情况下,服务器端每一个接口都会独占一个线程,这样就会使得服务器端有很多线程同时存在,在客户端非常多的情况下,也会对服务器端的处理能力带来很大的挑战。
发明内容
本发明实施例提供一种即时通信的方法、系统及服务器,解决了在长连接模式中,对于客户端非常多的情况下,服务器端有大量线程同时存在时影响服务器端处理能力的问题。
本发明实施例一方面提供一种即时通信的方法,包括以下步骤:
根据接收到的客户端发送的建立长连接请求,建立与当前客户端的长连接,并分配给所述当前客户端对应的线程;
所述服务器端判断是否存在所述当前客户端的即时信息;
所述服务器端判断是否存在所述当前客户端的即时信息,如果不存在,则将当前客户端建立的长连接挂起,并将发送建立长连接请求的下一客户端作为当前客户端;如果存在,则发送即时信息给对应客户端;
其中,所述当前客户端和所述下一客户端使用同一线程。
优选的,所述将当前客户端建立的长连接挂起,并将发送建立长连接请求的下一客户端作为当前客户端之后,该方法还包括:
当检测到包含有挂起的客户端的即时消息时,唤醒对应客户端的长连接;
将检测到的即时消息发送给对应的所述唤醒长连接的客户端。
优选的,所述将检测到的即时消息发送给对应的所述唤醒长连接的客户端之后,该方法还包括:再挂起对应客户端的长连接。
优选的,当检测到包含有挂起的客户端的即时消息时,唤醒对应客户端的长连接之前,该方法还包括:
获取即时消息,所述即时消息中携带有客户端信息以及对应的当前位置对应的IP地址;
将获取的即时消息保存到缓存中,并按照接收客户端发送的建立长连接请求的先后顺序,依次唤醒对应客户端的长连接。
优选的,所述当检测到包含有挂起的客户端的即时消息时,唤醒对应客户端的长连接,具体为:
解析获取的即时消息中包含的所述客户端当前位置对应的IP地址;
根据解析的IP地址,唤醒对应客户端的长连接。
优选的,采用轮询的模式获取即时信息。
本发明实施例另一方面还提供一种即时通信系统,包括:客户端与服务器端;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210062366.2/2.html,转载请声明来源钻瓜专利网。