一种基于浏览器的web即时通讯方法

文档序号:7809137阅读:542来源:国知局
专利名称:一种基于浏览器的web即时通讯方法
技术领域
本发明涉及计算机网络通信技术领域,更具体地说,涉及一种基于浏览器的web 即时通讯方法。
背景技术
近年来,以浏览器为终端的实时通信系统,以其使用方便、简洁、不受限制等特点, 已经被广大用户所接受,但是由于浏览器本身的特点,使其即时信息、状态、消息通知等方面不能实时与用户同步。可见解决浏览器终端与服务器信息的实时同步,是提高用户对浏览器终端产品的体验的衡量指标之一。Web即时通讯由于浏览器本身的原因,浏览器只能通过发送http链接获得返回内容。由于浏览器本身就是这种“拉”的方式来实现跟后台的交互,所以要基于浏览器要实现 web即时通讯,现有普遍的做法(如图1)都是使用“拉”的方式获得服务器的信息,需要不停地发起链接到服务器查看是否有信息。采用此方法需要浏览器定时地发起请求,如果定时时间过长,则信息不能实时地提供给浏览器客户端,如果定时时间过短,则浏览器会频繁地发起请求,对服务器产生很大的压力,并且很多请求都是空请求,因为可能在此时间用户并没有变化的信息,这样将导致服务器的负担会很大,有时候为了实现即时拿到一个信息会发送成千上万的无用链接。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述浏览器采用“拉”的方式通过不停的发送连接到服务器建立连接,导致服务器负担大的缺陷,提供一种基于浏览器的web 即时通讯方法。本发明解决其技术问题所采用的技术方案是构造一种基于浏览器的web即时通讯方法,包括以下步骤Si、用户登录浏览器客户端;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即时通讯方法流程图,包含以下步骤Si、用户登录浏览器客户端;S2、浏览器客户端向服务器发起http请求;S3、服务器从线程池获取线程处理浏览器客户端发起的http连接,服务器判断其缓冲区是否有新信息,如果有,则执行步骤S7 ;如果没有,则执行步骤S4 ;S4、服务器使用NIO技术挂起连接,并释放线程到线程池;S5、服务器判断连接是否超时,超时是指超过预设连接时间;如果超时,则从线程池获取一个线程发送一个心跳信号给浏览器客户端,返回步骤S2 ;否则执行步骤S6 ;S6、服务器判断是否有新信息,如果是,则执行步骤S7,否则继续监控;S7、服务器从线程池获取线程,将新信息发送给浏览器客户端,浏览器客户端处理接收到的新信息,处理完成后返回步骤S2。进一步的,在步骤S5中,浏览器客户端收到心跳信号后,不做任何处理直接返回步骤S2 ο在建立http连接时,浏览器客户端以异步的方式实现接入服务。在本实施例中, 浏览器客户端使用ajax技术,发起连接到服务器。ajax是主流浏览器都支持的与服务器通讯的技术,所以使用ajax可以兼容目前的主流浏览器。同时无须安装任何插件。
服务器收到的新信息是由即时通信系统提供,该新信息包括通信系统的系统即时消息、联系人变化信息和系统通知中的一种或者多种。在本实施例中,预设连接时间是10分钟,按照实际需要,也可以设置为其它时间。在本实施例中,在服务器端采用“非阻塞”技术,即使用NIO技术挂起http连接, 当连接空闲了就挂起连接释放处理的线程,这样线程就可以处理其他的连接,大幅度减轻了服务器不必要的负担,提高的服务器端的性能。基于“非阻塞”技术实现http长连接,大幅度减少连接数,同时提高服务器端性能,实现即时通讯同时大幅度减少服务器压力。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于浏览器的web即时通讯方法,其特征在于,包括以下步骤51、用户登录浏览器客户端;52、浏览器客户端向服务器发起http请求;53、服务器从线程池获取线程处理浏览器客户端发起的http连接,服务器判断其缓冲区是否有新信息,如果有,则执行步骤S7 ;如果没有,则执行步骤S4 ;54、服务器使用NIO技术挂起连接,并释放线程到线程池;55、服务器判断连接是否超时,所述超时是指超过预设连接时间;如果超时,则从线程池获取一个线程发送一个心跳信号给浏览器客户端,返回步骤S2 ;否则执行步骤S6 ;56、服务器判断是否有新信息,如果是,则执行步骤S7,否则继续监控;57、服务器从线程池获取线程,将新信息发送给浏览器客户端,浏览器客户端处理接收到的新信息,处理完成后返回步骤S2。
2.根据权利要求1所述的基于浏览器的web即时通讯方法,其特征在于,所述步骤S5 进一步包括,浏览器客户端收到心跳信号后,不做任何处理直接返回步骤S2。
3.根据权利要求1所述的基于浏览器的web即时通讯方法,其特征在于,在建立http 连接时,以异步的方式实现接入服务。
4.根据权利要求1所述的基于浏览器的web即时通讯方法,其特征在于,所述新信息是由即时通信系统提供。
5.根据权利要求4所述的基于浏览器的web即时通讯方法,其特征在于,所述新信息包括所述即时通信系统的系统即时消息、联系人变化信息和系统通知中的一种或者多种。
6.根据权利要求1所述的基于浏览器的web即时通讯方法,其特征在在于,所述预设连接时间是10分钟。
全文摘要
本发明涉及一种基于浏览器的web即时通讯方法,包括以下步骤用户登录浏览器客户端,向服务器发起http请求,服务器从线程池获取线程处理浏览器客户端发起的http连接,判断其缓冲区是否有新信息,如果有,则服务器将新信息发送给浏览器客户端;如果没有,则服务器使用NIO技术挂起连接,并释放线程到线程池;服务器判断连接是否超时,如果超时,则从线程池获取一个线程发送一个心跳信号给浏览器客户端,重新建立连接;否则服务器判断是否有新信息,如果是,则服务器将新信息发送给浏览器客户端,否则继续监控。本发明实现了浏览器客户端实时获取信息,且在连接空闲时挂起连接,减轻了服务器不必要的负担,提高服务器的性能。
文档编号H04L29/08GK102413191SQ20111045420
公开日2012年4月11日 申请日期2011年12月30日 优先权日2011年12月30日
发明者林绿德 申请人:深圳市旗瀚软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1