发明内容
针对上述至少一个技术问题,本发明的目的在于提供一种云手机数据发送方法、计算机装置和存储介质。
一方面,本发明实施例包括一种云手机数据发送方法,包括以下步骤:
获取云手机程序产生的消息数据;所述云手机程序包括操作***程序和应用程序;
将所述消息数据存储到缓存区;
建立第一连接和第二连接;所述第一连接为长连接,所述第二连接为长连接或短连接;
从所述缓存区读取出所述消息数据,通过所述第一连接发送所述消息数据;
获取所述云手机程序产生的画面数据,通过所述第二连接发送所述画面数据。
进一步地,所述将所述消息数据存储到缓存区这一步骤,具体包括:
获取所述云手机程序对应的终端编码;
用所述终端编码标记所述消息数据;
将经过标记的所述消息数据存储到缓存区。
进一步地,所述将所述消息数据存储到缓存区这一步骤,具体包括:
获取所述云手机程序的分类信息;
根据所述分类信息,对所述消息数据标记重要程度信息;
将经过标记的所述消息数据存储到缓存区。
进一步地,所述从所述缓存区读取出所述消息数据,通过所述第一连接发送所述消息数据这一步骤,具体包括:
根据所述重要程度信息,对所述缓存区中存储的各所述消息数据进行排序;
按照经过所述排序所得的顺序,从所述缓存区中读取出部分或全部所述消息数据;
通过所述第一连接发送读取出的所述消息数据。
进一步地,云手机数据发送方法还包括以下步骤:
通过所述第一连接接收操作指令;
将所述操作指令发送到所述云手机程序;
获取所述云手机程序对所述操作指令的响应;
根据所述响应对所述缓存区中存储的所述消息数据进行更新。
进一步地,云手机数据发送方法还包括以下步骤:
生成第一时间戳和第二时间戳;所述第一时间戳与所述消息数据的显示时间对应,所述第二时间戳与所述画面数据的显示时间对应;
用所述第一时间戳标记所述消息数据;
用所述第二时间戳标记所述画面数据。
进一步地,云手机数据发送方法还包括以下步骤:
获取第一连接时长和第二连接时长;所述第一连接时长为所述第一连接所建立的累计时长,所述第二连接时长为所述第二连接所建立的累计时长;
当所述第二连接时长减去所述第一连接时长的差值或者所述第二连接时长与所述第一连接时长的比值大于预设的阈值,将所述消息数据合成到所述画面数据,断开所述第一连接。
进一步地,云手机数据发送方法还包括以下步骤:
当所述第二连接为长连接,将通过所述第一连接发送的所述消息数据作为所述第二连接的心跳包;
当所述第二连接为短连接,确定通过所述第一连接发送所述消息数据的频率,当所述频率大于预设的阈值,将所述第二连接切换为长连接。
另一方面,本发明实施例还包括一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行云手机数据发送方法。
另一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行云手机数据发送方法。
本发明的有益效果是:实施例中的云手机数据发送方法,可选择单独通过第一连接向客户端发送消息数据,当选择单独通过第一连接向客户端发送消息数据时,由于无需用户操作客户端获取画面数据,从而避免繁琐的操作;由于避免了画面数据的传输,因此可以节约通信流量。
具体实施方式
本发明的实施例中,所使用的硬件架构如图1所示,包括服务端、后台和客户端,其中服务端和后台可以集成在一起,由同一计算机设备来运行,或者用不同的计算机设备分别作为服务端和后台,服务端和后台之间通过内网连接。
服务端运行云手机程序,包括作为基本操作***的操作***程序和用于实现具体功能的应用程序。后台设有缓存区数据库,可以作为服务端及其所运行的云手机程序所产生数据的缓存区。服务端和后台由云手机服务供应商所拥有并进行运行管理,客户端由用户持有。
在接收到客户端的请求并完成鉴权验证等操作后,后台可以与客户端建立第一连接和/或第二连接,后台执行本发明实施例中的云手机数据发送方法。
实施例1
参照图2,本实施例中的云手机数据发送方法,包括以下步骤:
S1.获取云手机程序产生的消息数据;所述云手机程序包括操作***程序和应用程序;
S2.将所述消息数据存储到缓存区;
S3.建立第一连接和第二连接;第一连接是长连接,第二连接可以是长连接或短连接;
S4.从缓存区读取出消息数据,通过第一连接发送所述消息数据;
S5.获取所述云手机程序产生的画面数据,通过第二连接发送所述画面数据。
云手机程序在运行过程中产生画面数据和消息数据,本实施例中,画面数据和消息数据本身是或者可以被转换为客户端可读的格式,从而转换成相应的视觉内容并显示出来。客户端根据画面数据所显示的内容包括以文字或图案形式所呈现的人机交互界面元素、视频、图片、动画等,从而显示出人机交互界面。客户端根据消息数据所显示的内容包括用来提醒用户收到新的短信或新闻动态、内存空间使用情况、电池电量情况、云手机程序运行情况等的文字或数字消息,还可以包括社交工具接收到他人发送的聊天消息、应用程序更新通知等消息。
一些云手机程序不单独产生消息数据。服务端可以从云手机程序所产生的画面数据或者云手机程序所在的内存区等处提取出消息数据。
服务端获取到消息数据后,将消息数据存储到后台的缓存区数据库中。考虑到服务端所运行的云手机程序分别对应不同的客户端,可选地,获取每个云手机程序的终端编码,这些终端编码指向云手机程序所属的客户端。在存储消息数据时,还将产生消息数据的云手机程序的终端编码对消息数据进行标记,这样,缓存区中除了存储消息数据本身,还存储产生消息数据的云手机程序的终端编码。后台可以使用一个缓存区存储对应不同客户端的消息数据,以降低对计算机资源的消耗。当多个不同客户端与后台连接,后台可以识别客户端的终端编码,根据终端编码从缓存区中读取出相应的消息数据并发送到客户端。
本实施例中,客户端中常驻一个程序与后台建立和保持第一连接。如果第二连接是长连接,那么客户端中的该程序也与后台保持第二连接,如果第二连接是短连接,那么客户端仅当在接收后台发送画面数据的时候与后台建立第二连接,在其余时候则断开与后台之间的第二连接。本实施例中,第一连接用于发送消息数据,第二连接用于发送画面数据。后台扫描缓存区的消息数据更新情况,当检测有新的消息数据被写入到缓存区,就根据客户端的终端编码,从缓存区中查找出相应的消息数据,将消息数据通过第一连接发送到客户端;当检测到客户端或服务端发出建立第二连接的请求,后台与客户端建立第二连接,获取相应云手机程序产生的画面数据,将画面数据通过第二连接发送到客户端。
本实施例中,第一连接和第二连接是通过两个互相独立的数据传输协议建立的,也就是第一连接和第二连接可以分别独立地建立和断开。这样,本实施例中,后台向客户端发送消息数据的过程和发送画面数据的过程是相互独立的,即后台向客户端发送消息数据的过程无需依赖发送画面数据的过程,而后台向客户端发送画面数据的过程也无需依赖发送消息数据的过程。后台可以定时地向客户端发送消息数据,或者在检测到缓存区数据库的容量达到预设阈值时向客户端发送消息数据,还可以在接收到客户端请求后向客户端发送消息数据。
本实施例中,由于后台向客户端发送消息数据的过程无需依赖发送画面数据的过程,因此后台可以单独向客户端发送消息数据。当后台单独通过第一连接向客户端发送消息数据,由于后台未发送画面数据,因此客户端不会接收到画面数据,客户端可以通过专用的人机交互界面将消息数据显示出来。如果后台通过第一连接向客户端发送消息数据,同时通过第二连接向客户端发送画面数据,客户端可以将消息数据和画面数据合成在一起之后进行显示,也就是通过画面数据所生成的人机交互界面将消息数据显示出来。
本实施例中,当选择单独通过第一连接向客户端发送消息数据时,由于无需用户操作客户端获取画面数据,从而避免繁琐的操作;由于避免了画面数据的传输,因此可以节约通信流量。
可选地,在获取云手机程序时,还可以获取云手机程序的分类信息,本实施例中的分类信息可以表明云手机程序属于操作***所依赖的底层程序、办公类程序和娱乐类程序等。这些不同的云手机程序所产生的消息数据的紧急程度也不同,例如操作***所依赖的底层程序所产生的消息数据一般用于提醒用户关于操作***运行安全的信息,属于最重要的程度;办公类程序所产生的消息数据一般用于提醒用户关于工作的信息,属于次重要的程度,娱乐类程序所产生的消息数据一般用于提醒用户关于娱乐的信息,属于最不重要的程度,上述对重要程度的分级或评分形成重要程度信息。
本实施例中,服务端或后台将重要程度信息标记到消息数据,然后将经过标记的所述消息数据存储到缓存区。后台还可以对存储在缓存区内的消息数据按照对应的重要程度进行排序,使得后台在向客户端发送消息数据时,优先将最重要的消息数据通过第一连接发送出去,然后依次将次重要和最不重要的消息数据通过第一连接发送出去。
通过按照重要程度对消息数据进行标记和排序,可以使得消息数据的发送具有次序性,最重要的消息数据会被优先发送出去,可以有效应对因计算机硬件故障、网络崩溃或者通信流量不足导致的不能将全部消息数据都发送出去的情况。
后台除了通过第一连接向客户端发送消息数据,还通过第一连接接收客户端发出的操作指令。后台可以根据操作指令直接对存储在缓存区中的消息数据进行标记已读以及清除部分或全部消息数据等操作。后台也可以将操作指令发送到云手机程序,由云手机程序对操作指令进行响应,包括执行软件更新、回复社交软件上好友发送过来的消息等。云手机程序后续将软件更新执行完成、接收到好友新发送过来的消息等响应结果作为消息数据发送到后台,后台将新的消息数据替代缓存区中存储的消息数据,从而实现对缓存区中存储的消息数据的更新。
服务端或后台生成第一时间戳以记录消息数据的显示时间,生成第二时间戳以记录画面数据的显示时间,本实施例中显示时间可以是服务端或后台指令客户端显示出消息数据或画面数据的时间。服务端或后台用第一时间戳标记消息数据,用第二时间戳标记画面数据,当客户端接收到消息数据和画面数据后,从消息数据和画面数据分别提取出第一时间戳和第二时间戳,客户端在第一时间戳所记录的显示时间显示消息数据,在第二时间戳所记录的显示时间显示画面数据。
第一时间戳和第二时间戳可以指示消息数据和画面数据的显示时序关系。本实施例中,消息数据和画面数据可以被分离开来进行独立的发送,但事实上消息数据和画面数据有可能需要被同步显示,例如根据画面数据所显示出来的是一个社交软件的聊天界面,而根据消息数据所显示出来的是这一社交软件聊天界面中的聊天消息,那么表明消息数据与画面数据可能需要在客户端中被同时显示出来。在这种情况下,服务端或后台将第一时间戳和第二时间戳设定为同一数值,客户端根据第一时间戳和第二时间戳确定消息数据和画面数据的显示时间,可以将消息数据和画面数据同步显示出来,实现消息数据和画面数据被独立发送的情况下的还原。
本实施例中,服务端或后台统计一段时间内第一连接所建立并保持的累计时长,得到第一连接时长,以及统计相同一段时间内第二连接所建立并保持的累计时长,得到第二连接时长。服务端或后台分析第一连接时长和第二连接时长之间的大小关系,包括第二连接时长减去第一连接时长的差值,或者第二连接时长与第一连接时长的比值。根据第一连接时长与第二连接时长之间的差值或比值,可以确定第一连接时长与第二连接时长孰大孰小。如果第二连接时长减去第一连接时长的差值大于预设的阈值,或者第二连接时长与第一连接时长的比值大于预设的阈值,并且将阈值设定为一个较大的值,例如对于差值所设定的阈值为10h,对于比值所设定的阈值为100,那么表明第二连接时长远比第一连接时长大,表明单独发送消息数据的需求量较低,客户端和后台可以断开第一连接,将消息数据合成到画面数据后统一经过第二连接发送,以节约客户端和后台的硬件和软件资源。在断开第一连接后,可以在经过一段预设时间,或者在检测客户端发出请求、检测到第二连接的连接时长出现下降等触发条件之后,可以重新建立第一连接,也就是重新执行通过第一连接来发送消息数据、通过第二连接来发送画面数据的云手机数据发送方法。
本实施例中,如果后台与客户端之间所建立的第二连接为长连接,那么后台将通过第一连接发送的消息数据作为第二连接的心跳包,以对第二连接进行维持,可以避免发送专门的心跳包,以进一步节约网络流量。
本实施例中,如果后台与客户端之间所建立的第二连接为短连接,后台通过检测一段时间内通过第一连接发送消息数据的次数或数据量,计算出通过第一连接发送消息数据的频率。如果后台通过第一连接向客户端发送消息数据的频率大于预设的阈值,表明云手机程序的活动比较活跃,后台将第二连接由短连接切换为长连接,可以避免频繁地建立和断开第二连接,减少对后台硬件和软件资源的消耗。
实施例2
本实施例中,一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例1中的云手机数据发送方法。
本实施例中,一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行实施例1中的云手机数据发送方法,实现与实施例1中所述的相同的技术效果。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向目标终端的编程语言来实现以与计算机***通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机***的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的目标终端,包括显示器上产生的物理和有形目标终端的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。