[发明专利]一种基于浏览器的web即时通讯方法有效
申请号: | 201110454201.5 | 申请日: | 2011-12-30 |
公开(公告)号: | CN102413191A | 公开(公告)日: | 2012-04-11 |
发明(设计)人: | 林绿德 | 申请(专利权)人: | 深圳市旗瀚软件有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/58 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 易钊 |
地址: | 518040 广东省深圳市福*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 浏览器 web 即时通讯 方法 | ||
技术领域
本发明涉及计算机网络通信技术领域,更具体地说,涉及一种基于浏览器的web即时通讯方法。
背景技术
近年来,以浏览器为终端的实时通信系统,以其使用方便、简洁、不受限制等特点,已经被广大用户所接受,但是由于浏览器本身的特点,使其即时信息、状态、消息通知等方面不能实时与用户同步。可见解决浏览器终端与服务器信息的实时同步,是提高用户对浏览器终端产品的体验的衡量指标之一。
Web即时通讯由于浏览器本身的原因,浏览器只能通过发送http链接获得返回内容。由于浏览器本身就是这种“拉”的方式来实现跟后台的交互,所以要基于浏览器要实现web即时通讯,现有普遍的做法(如图1)都是使用“拉”的方式获得服务器的信息,需要不停地发起链接到服务器查看是否有信息。采用此方法需要浏览器定时地发起请求,如果定时时间过长,则信息不能实时地提供给浏览器客户端,如果定时时间过短,则浏览器会频繁地发起请求,对服务器产生很大的压力,并且很多请求都是空请求,因为可能在此时间用户并没有变化的信息,这样将导致服务器的负担会很大,有时候为了实现即时拿到一个信息会发送成千上万的无用链接。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述浏览器采用“拉”的方式通过不停的发送连接到服务器建立连接,导致服务器负担大的缺陷,提供一种基于浏览器的web即时通讯方法。
本发明解决其技术问题所采用的技术方案是:构造一种基于浏览器的web即时通讯方法,包括以下步骤:
S1、用户登录浏览器客户端;
S2、浏览器客户端向服务器发起http请求;
S3、服务器从线程池获取线程处理浏览器客户端发起的http连接,服务器判断其缓冲区是否有新信息,如果有,则执行步骤S7;如果没有,则执行步骤S4;
S4、服务器使用NIO技术挂起连接,并释放线程到线程池;
S5、服务器判断连接是否超时,所述超时是指超过预设连接时间;如果超时,则从线程池获取一个线程发送一个心跳信号给浏览器客户端,返回步骤S2;否则执行步骤S6;
S6、服务器判断是否有新信息,如果是,则执行步骤S7,否则继续监控;
S7、服务器从线程池获取线程,将新信息发送给浏览器客户端,浏览器客户端处理接收到的新信息,处理完成后返回步骤S2。
在本发明的基于浏览器的web即时通讯方法中,所述步骤S5进一步包括,浏览器客户端收到心跳信号后,不做任何处理直接返回步骤S2。
在本发明的基于浏览器的web即时通讯方法中,在建立http连接时,以异步的方式实现接入服务。
在本发明的基于浏览器的web即时通讯方法中,所述新信息是由即时通信系统提供。
在本发明的基于浏览器的web即时通讯方法中,所述新信息包括所述即时通信系统的系统即时消息、联系人变化信息和系统通知中的一种或者多种。
在本发明的基于浏览器的web即时通讯方法中,所述预设连接时间是10分钟。
实施本发明的基于浏览器的web即时通讯方法,具有以下有益效果:浏览器客户端向服务器发起http请求后,在建立连接后在预设连接时间等待数据,在没有新信息的时候采用NIO技术挂起连接,并释放线程到线程池,这样线程就可以处理其它连接,大幅度减轻了服务器不必要的负担,提高服务器端的性能,减少服务器的压力。服务器在检测到有新信息时即时将新信息推到浏览器客户端,极大减少了浏览器客户端发送到服务器的没用连接,大大减轻了服务器的压力。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是现有的基于浏览器的web即时通讯方法流程图;
图2是本发明的基于浏览器的web即时通讯方法流程图。
具体实施方式
为了使本发明的目的更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的基于浏览器的web即时通讯方法流程图,包含以下步骤:
S1、用户登录浏览器客户端;
S2、浏览器客户端向服务器发起http请求;
S3、服务器从线程池获取线程处理浏览器客户端发起的http连接,服务器判断其缓冲区是否有新信息,如果有,则执行步骤S7;如果没有,则执行步骤S4;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市旗瀚软件有限公司,未经深圳市旗瀚软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110454201.5/2.html,转载请声明来源钻瓜专利网。