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

文档序号:9581720阅读:来源:国知局
信接口 210第一次接收到一个客户 端发来的请求消息时,存储单元230不仅要在在线用户列表中增加一条存储条目,用来存 储该客户端标识,而且,由于该新增的客户端标识还没有对应的长连接通道,因此,通信控 制器220还会为该客户端标识对应分配一个长连接通道,并将该长连接通道作为第二类数 据存储在客户端信息列表中,同时控制通信接口 210向客户端发送上述的第二响应消息。
[0070] 第S类数据是每个长连接通道的ip地址,采用键-值方式存储,键为"CHANWL_ POSI{用户id}I{通道标示}",值为长连接通道的ip地址,运个地址也就是服务器向客户 端传输消息时的消息传输地址。其中,每个长连接通道的ip地址通过"用户id"与第二类 数据中的长连接通道W及第一类数据中的客户端标识相关联。实际上,第=类数据中存储 的长连接通道的ip地址就是第二类数据中存储的长连接通道的通道地址。也就是说,第二 类数据仅仅存储了一个长连接通道的标号,而该标号对应的长连接通道的具体通道地址在 第=类数据中存储。因此,存储单元230每次在第二类数据中新增一个长连接通道时,还要 对应地在第=类数据存储该长连接通道的通道地址,也就是长连接通道标识。
[0071] 上述的=类数据主要存储了客户端的客户端标识(第一类数据)W及客户端的长 连接通道标识(第=类数据),第二类数据将第一类数据和第=类数据更好地关联起来。具 体实现时,也可W采用其它的存储方式,只要能够关联存储客户端的信息W及长连接通道 的信息即可。
[0072] 另外,为了实现对上述=类数据的有效维护,除了通过上述方式在每次接收到请 求消息时由通信控制器220判断该请求消息中包含的客户端标识是否已经存储在了客户 端信息列表中,并在判断结果为否时,将该客户端标识添加到客户端信息列表中,并为该客 户端标识分配一个长连接通道之外,还需要及时删除已经下线的客户端对应的客户端标识 及其长连接通道,对此,该服务器还可W进一步包括一个链接管理器240,用于确定下线的 客户端并将其删除。上面已经提到,上线的客户端是每隔4分钟向服务器发送一次请求消 息,服务器每次收到请求消息后由存储单元230记录下同一客户端每次发送请求消息的时 间,因此,该链接管理器240需要运行一个进程,该进程每隔6分钟扫描一次存储单元230 的客户端信息列表中存储的在线用户列表,将在6分钟之内没有发起请求消息的客户端对 应的客户端标识W及相关联的长连接通道及长连接通道标识删除,从而实现及时删除下线 用户的目的,同时断开相应的长连接通道。其中,本实施例中的4分钟和6分钟只是示意性 的描述,在具体实现时,只要链接管理器240中的进程扫描在线用户列表的时间间隔大于 客户端每次发送请求消息时的时间间隔即可。
[0073] 通过客户端信息列表中存储的上述数据,一方面,服务器可W在每次收到客户端 发来的请求消息之后,确定出该客户端与服务器之间是否已经建立了长连接,并据此向客 户端返回响应消息,W便客户端及时了解长连接的状态,并在长连接断开后能够及时建立 连接,在此过程中,服务器进一步对客户端信息列表中的数据进行维护,W便于后续处理。 另一方面,在后续过程中,服务器还可W根据该客户端信息列表,确定与客户端之间建立的 长连接,由通信接口 210通过该长连接在服务器和客户端之间传输消息。 阳074] 可选地,客户端100发送的请求消息中还可W进一步包括当前在该客户端上运行 的应用的应用标识,其中,当前在该客户端上运行的应用例如可W是用户在该客户端上正 在玩的网络游戏,运时,相应的应用标识可W是该网络游戏的游戏名称、游戏ID和/或游戏 区服等相关的信息;或者,当前在该客户端上运行的应用也可W是用户在该客户端上正在 收听的歌曲,运时,相应的应用标识可W是该歌曲的歌曲名称等。另外,当客户端上运行的 应用为多个时,也可W同时获取运多个应用的应用标识。由于服务器已经通过请求消息中 的应用标识获知了在发送该请求消息的客户端上正在运行的应用,因此,服务器在后续通 过该客户端与服务器之间的长连接通道传输消息时,可W有针对性地传输一些与客户端上 正在运行的应用相关的消息,W实现广告内容或者推广活动的精准推送。例如,如果客户端 上目前正在玩一款大型的网络游戏,就可W向该客户端推送一些与该网络游戏相关的资讯 或广告等。其中,客户端获取应用标识(例如游戏ID)并将获取的应用标识W及客户端标 识发送给服务器的通信接口 210的具体过程可参照方法实施例中的代码实现,此处不再寶 述。
[0075] 另外,本实施例中的服务器还可W进一步包括同步单元(图中未示出),用于接收 客户端每隔预设的第=时间间隔发送的同步请求,并根据该同步请求向客户端返回未同步 的数据。
[0076] 本发明实施例还提供了一种通信系统,如图2所示,包括上述的服务器200W及客 户端100。其中,服务器200进一步包括通信接口 210、通信控制器220、存储单元230W及 链接管理器240。具体地,每个部件的工作原理可参照上述关于服务器的实施例中的描述, 此处不再寶述。
[0077] 本发明实施例提供的通信系统,除了可W由服务器利用长连接通道向客户端精准 推送数据之外,还可W由客户端利用长连接通道与服务器之间同步数据,例如,客户端可 W采用轮询请求的方式来同步服务器端的数据,具体地,客户端可W每隔一定的时间间隔 (如1分钟)向服务器发送同步请求,服务器每次接收到同步请求后将未同步的数据返回给 客户端。为了缩短数据的延迟,可W将客户端发送同步请求的时间间隔设置得尽可能小。
[0078] 由此可见,通过本发明实施例提供的服务器及通信系统,通过客户端发送请求消 息,服务器通过自身维护的客户端信息列表向客户端返回响应消息的方式,可W使客户端 及时了解与服务器之间的长连接的状态,并在长连接断开时及时建立连接。而且,服务器还 可W通过该长连接向客户端传输消息,且可根据客户端正在运行的应用来有针对性的推送 数据,因此,更加符合用户需求。
[0079] 本发明可W特别地应用于基于诸如HTTP之类的无状态通信协议的网络应用场景 中,尤其可W应用于基于web的应用场景中。在基于web的应用场景中,客户端为网络浏览 器,特别是网络浏览器中的网页及其相关javascript脚本,而服务器为处理来自网页的请 求的web服务器。
[0080] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。 各种通用系统也可W与基于在此的示教一起使用。根据上面的描述,构造运类系统所要求 的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可W利用各种 编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发 明的最佳实施方式。
[0081] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可W在没有运些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构 和技术,W便不模糊对本说明书的理解。
[0082] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面 的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此, 遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身 都作为本发明的单独实施例。
[0083] 本领域那些技术人员可W理解,可W对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可W把实施例中的模块或单 元或组件组合成一个模块或单元或组件,W及此外可W把它们分成多个子模块或子单元或 子组件。除了运样的特征和/或过程或者单元中的至少一些是相互排斥之外,可W采用任 何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征W及如此公开 的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可W由提供相同、等同或相似目的的替代 特征来代替。
[0084] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可WW任意的组合方式来使用。
[00化]本发明的各个部件实施例可WW硬件实现,或者W在一个或者多个处理器上运行 的软件模块实现,或者W它们的组合实现。本领域的技术人员应当理解,可W在实践中使用 微处理器或者数字信号处理器值S巧来实现根据本发明实施例的文件至宿主文件中的捆 绑装置中的一些或者全部部件的一些或者全部功能。本发明还可W实现为用于执行运里 所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产 品)。运样的实现本发明的程序可W存储在计算机可读介质上,或者可W具有一个或者多个 信号的形式。运样的信号可W从因特网网站上下载得到,或者在载体信号上提供,或者W任 何其他形式提供。
[0086] 应该注意的是上述实施例
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1