和客户端进行通信的方法以及服务器的制作方法

文档序号:7864594阅读:167来源:国知局
专利名称:和客户端进行通信的方法以及服务器的制作方法
技术领域
本发明涉及通信领域,具体涉及一种和客户端进行通信的方法以及服务器。
背景技术
随着网络的快速发展,出现了很多基于网络的应用,这些网络应用包括在线视频、在线交友以及网络游戏等。网络应用的用户需要通过客户端和服务器进行通信,以获取服务器提供的服务。 为了实现客户端与服务器之间的通信,首先需要在客户端和服务器之间建立连接,常用的连接方式有两种,一种是长连接通信方式,一种是短连接通信方式。所谓长连接通信,是指建立一个连接之后,在这个连接上可以连续发送多个数据包,然后断开连接,在连接保持期间,如果没有数据包发送,需要发送链路检测包;所谓短连接通信,是指通信双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。由于短连接通信方式需要频繁建立连接,因此,在网络应用中通常采用长连接通信方式进行通信。但是,目前,长连接的建立仅仅是服务器端的行为,客户端并不知晓长连接是否已经建立以及建立了多少个长连接,甚至也无法知道长连接是否已经失效。因此,客户端无法知晓长连接的建立情况,不利于客户端与服务器之间的通信。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的和客户端进行通信的方法以及服务器。依据本发明的一个方面,提供了一种在服务器处和客户端进行通信的方法,包括以下步骤接收到客户端发送的请求消息,获取包含在请求消息中的客户端的客户端标识;确定客户端信息列表中是否存储了与客户端标识相对应的长连接通道标识,如果存储了长连接通道标识,则向客户端返回用于指示长连接已建立的第一响应消息;如果未存储长连接通道标识,则为客户端分配一个长连接通道,将长连接通道的长连接通道标识以及客户端标识存入客户端信息列表中,并向客户端返回用于指示长连接未建立的第二响应消息,其中,第二响应消息中包含长连接通道标识,用于指示客户端根据长连接通道标识与服务器建立长连接;以及根据与客户端之间建立的长连接,在服务器和客户端之间传输消息。可选地,其中请求信息还包括当前在客户端上运行的应用的应用标识,以及在服务器和客户端之间传输消息的步骤包括将该应用相关的消息传输到客户端。可选地,客户端每隔预设的第一时间间隔向服务器发送请求消息。可选地,还包括步骤在客户端信息列表中与客户端标识相关联地存储每次接收到客户端发送的请求消息的时间。可选地,还包括步骤每隔预设的第二时间间隔对客户端信息列表中存储的客户端发送请求消息的时间间隔进行检测,将与在第二时间间隔内没有发送请求消息的客户端对应的长连接通道标识删除,并断开长连接通道标识对应的长连接通道,其中,第二时间间隔大于第一时间间隔。可选地,还包括步骤客户端每隔预设的第三时间间隔向服务器发送同步请求,月艮务器接收到同步请求后向客户端返回未同步的数据。根据本发明的另一方面,提供了一种适于和客户端进行通信的服务器,包括存储单元,适于存储客户端信息列表;通信接口,适于接收到客户端发送的请求消息,获取包含在请求消息中的客户端的客户端标识;通信控制器,适于确定客户端信息列表中是否存储了与客户端标识相对应的长·连接通道标识,如果存储了长连接通道标识,则控制通信接口向客户端返回指示长连接已建立的第一响应消息;如果未存储长连接通道标识,则为客户端分配一个长连接通道,将长连接通道的长连接通道标识以及客户端标识存入客户端信息列表中,并控制通信接口向客户端返回指示长连接未建立的第二响应消息,其中,第二响应消息中包含长连接通道标识,该长连接通道标识指示客户端根据长连接通道标识与服务器建立长连接;其中,通信接口还根据与客户端之间建立的长连接,在服务器和客户端之间传输消息。可选地,请求信息还包括当前在客户端上运行的应用的应用标识,则通信接口具体用于将该应用相关的消息传输到客户端。可选地,客户端每隔预设的第一时间间隔向服务器发送请求消息。可选地,存储单元还适于在客户端信息列表中与客户端标识相关联地存储每次接收到客户端发送的请求消息的时间。可选地,进一步包括链接管理器,适于每隔预设的第二时间间隔对客户端信息列表中存储的客户端发送请求消息的时间间隔进行检测,将与在第二时间间隔内没有发送请求消息的客户端对应的长连接通道标识删除,并断开长连接通道标识对应的长连接通道,其中,第二时间间隔大于第一时间间隔。可选地,还包括同步单元,其接收客户端每隔预设的第三时间间隔发送的同步请求,并根据同步请求向客户端返回未同步的数据。根据本发明的和客户端进行通信的方法以及服务器,在接收到客户端主动发送的请求消息后,根据客户端信息列表确定与该客户端之间是否已经建立了长连接通道,并将结果返回给客户端,由此解决了现有技术中的客户端无法知晓长连接的建立情况的问题,取得了能够使客户端及时知晓长连接的建立情况以便与服务器进行通信的有益效果。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的附图标记表示相同的部件。在附图中图I示出了根据本发明一个实施例的在服务器处和客户端进行通信的方法的流程图2示出了根据本发明一个实施例的包含适于和客户端进行通信的服务器的通信系统的结构示意图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图I示出了本发明实施例提供的一种在服务器处和客户端进行通信的方法。图I所示的方法主要示出了服务器端执行的步骤,在服务器执行步骤SllO之前,客户端首先需要构造并发送请求消息。具体地,在构造请求消息时,客户端每隔预设的第一时间间隔(例如,4分钟)获取一次当前在该客户端上运行的应用的应用标识,以及该客户端的客户端标识,并根据获取 的应用标识以及客户端标识构造请求消息,将该请求消息发送给服务器。当前在该客户端上运行的应用例如可以是用户在该客户端上正在玩的网络游戏。这时,相应的应用标识可以是该网络游戏的游戏名称、游戏ID和/或游戏区服等相关的信息;或者,当前在该客户端上运行的应用也可以是用户在该客户端上正在收听的歌曲,这时,相应的应用标识可以是该歌曲的歌曲名称等。另外,当客户端上运行的应用为多个时,也可以同时获取这多个应用的应用标识。具体地,在获取客户端上运行的应用的应用标识时,可以通过多种方法,例如,可以通过任务管理器中的进程个数和进程名称获取。以客户端为网络浏览器、应用为基于网页的网络游戏为例来说,可以通过一些特定的javascript代码来获取网络游戏的游戏ID作为应用标识例如,在游戏页面中嵌入代码〈script src=〃http://u8. wan.360. cn/loader. js〃>U8. location=〃frmmo_S19〃;</script),其中的location字段标示了用户所玩游戏的游戏区服,然后,通过loader, js脚本即可获取location字段中的内容,进而获取到游戏区服以及该网络游戏的游戏ID。客户端的客户端标识主要是指能够唯一确定该客户端的标识信息,例如,可以是该客户端对应的IP地址。随后,将所获取的应用标识(即游戏ID)和客户端标识发送到服务器,这可以利用
下面的代码来完成
权利要求
1.一种在服务器处和客户端进行通信的方法,包括以下步骤接收到客户端发送的请求消息,获取包含在所述请求消息中的所述客户端的客户端标确定客户端信息列表中是否存储了与所述客户端标识相对应的长连接通道标识,如果存储了长连接通道标识,则向所述客户端返回用于指示长连接已建立的第一响应消息;如果未存储长连接通道标识,则为所述客户端分配一个长连接通道,将所述长连接通道的长连接通道标识以及所述客户端标识存入所述客户端信息列表中,并向所述客户端返回用于指示长连接未建立的第二响应消息,其中,所述第二响应消息中包含所述长连接通道标识,用于指示客户端根据所述长连接通道标识与所述服务器建立长连接;以及根据与客户端之间建立的长连接,在服务器和客户端之间传输消息。
2.如权利要求I所述的方法,其中所述请求信息还包括当前在所述客户端上运行的应用的应用标识,以及所述在服务器和客户端之间传输消息的步骤包括将该应用相关的消息传输到客户端。
3.如权利要求I所述的方法,所述客户端每隔预设的第一时间间隔向服务器发送所述请求消息。
4.如权利要求1-3中任一个所述的方法,还包括步骤在所述客户端信息列表中与所述客户端标识相关联地存储每次接收到所述客户端发送的请求消息的时间。
5.如权利要求4所述的方法,还包括步骤每隔预设的第二时间间隔对所述客户端信息列表中存储的客户端发送请求消息的时间间隔进行检测,将与在所述第二时间间隔内没有发送请求消息的客户端对应的长连接通道标识删除,并断开所述长连接通道标识对应的长连接通道,其中,所述第二时间间隔大于所述第一时间间隔。
6.如权利要求1-5中任一个所述的方法,还包括步骤所述客户端每隔预设的第三时间间隔向服务器发送同步请求,所述服务器接收到所述同步请求后向所述客户端返回未同步的数据。
7.—种适于和客户端进行通信的服务器,包括存储单元,适于存储客户端信息列表;通信接口,适于接收到客户端发送的请求消息,获取包含在所述请求消息中的所述客户端的客户端标识;通信控制器,适于确定客户端信息列表中是否存储了与所述客户端标识相对应的长连接通道标识,如果存储了长连接通道标识,则控制所述通信接口向所述客户端返回指示长连接已建立的第一响应消息;如果未存储长连接通道标识,则为所述客户端分配一个长连接通道,将所述长连接通道的长连接通道标识以及所述客户端标识存入所述客户端信息列表中,并控制所述通信接口向所述客户端返回指示长连接未建立的第二响应消息,其中,所述第二响应消息中包含所述长连接通道标识,该长连接通道标识指示客户端根据所述长连接通道标识与所述服务器建立长连接;其中,所述通信接口还根据与客户端之间建立的长连接,在服务器和客户端之间传输消息。
8.如权利要求7所述的服务器,所述请求信息还包括当前在所述客户端上运行的应用的应用标识,则所述通信接口具体用于将该应用相关的消息传输到客户端。
9.如权利要求7所述的服务器,其中,所述客户端每隔预设的第一时间间隔向服务器发送所述请求消息。
10.如权利要求7-9中任一个所述的服务器,所述存储单元还适于在所述客户端信息列表中与所述客户端标识相关联地存储每次接收到所述客户端发送的请求消息的时间。
11.如权利要求7-10中任一个所述的服务器,进一步包括链接管理器,适于每隔预设的第二时间间隔对所述客户端信息列表中存储的客户端发送请求消息的时间间隔进行检测,将与在所述第二时间间隔内没有发送请求消息的客户端对应的长连接通道标识删除,并断开所述长连接通道标识对应的长连接通道,其中,所述第二时间间隔大于所述第一时间间隔。
12.如权利要求7-11中任一个所述的服务器,还包括同步单元,其接收所述客户端每隔预设的第三时间间隔发送的同步请求,并根据所述同步请求向客户端返回未同步的数据。
全文摘要
本发明公开了一种在服务器处和客户端进行通信的方法以及服务器,能够使客户端及时知晓长连接的建立情况以便与服务器进行通信。该方法包括接收客户端发送的请求消息,获取包含在请求消息中的客户端的客户端标识;确定客户端信息列表中是否存储了与客户端标识相对应的长连接通道标识,如果存储了长连接通道标识,则向客户端返回用于指示长连接已建立的第一响应消息;如果未存储长连接通道标识,则为客户端分配一个长连接通道,将长连接通道的长连接通道标识以及客户端标识存入客户端信息列表中,并向客户端返回用于指示长连接未建立的第二响应消息;以及根据与客户端之间建立的长连接,在服务器和客户端之间传输消息。
文档编号H04L29/08GK102932352SQ20121043389
公开日2013年2月13日 申请日期2012年11月2日 优先权日2012年11月2日
发明者左文建, 黄欢, 王晓峰, 杨涛, 吕本伟 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1