CN111131369A - App使用情况的传输方法、装置、电子设备及存储介质 - Google Patents
App使用情况的传输方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111131369A CN111131369A CN201811296872.1A CN201811296872A CN111131369A CN 111131369 A CN111131369 A CN 111131369A CN 201811296872 A CN201811296872 A CN 201811296872A CN 111131369 A CN111131369 A CN 111131369A
- Authority
- CN
- China
- Prior art keywords
- client
- app
- server
- long connection
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提出一种APP使用情况的传输方法、装置、电子设备及存储介质,属于计算机应用技术领域。其中,该方法包括:建立与开发者/运营者的第一客户端之间的第一长连接;建立与用户的第二客户端之间的第二长连接;接收第二客户端通过第二长连接发送的APP的使用数据,其中,APP的使用数据包括APP标识;根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过这种APP使用情况的传输方法,不仅保证了第一客户端与第二客户端之间的数据同步,而且减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
Description
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种APP使用情况的传输方法、装置、电子设备及存储介质。
背景技术
客户端软件(Application,简称APP)的开发者/运营者可以通过获取部分用户对APP的行为数据(如点击某个按钮、访问某个页面等),了解用户对APP的使用情况,以对APP进行改进和优化。开发者/运营者可以通过在功能组件上“埋点”,即在功能组件上嵌入代码来统计用户对该功能组件的使用数据。而在开发时进行“埋点”的方式,不仅开发周期长、代价大,而且无法使“埋点”的APP覆盖所有用户。
可视化“埋点”是一种无需再开发过程中完成“埋点”的埋点方式,只需在需要“埋点”时,在提供相关服务的网站上,通过页面可视化的方式,显示APP的相关页面,并圈选需要统计其使用数据的功能组件,即可完成对该功能组件的“埋点”工作,并且“埋点”代码将自动下发覆盖所有使用APP的用户。
然而,开发者/运营者通过可视化方式对APP进行“埋点”时,需要服务端的数据与客户端实时保持一致,以保证圈选功能组件的准确性。相关技术中,客户端可以通过定时轮询的方式,不断向服务端发送数据请求,以实现在开发者/运营者操作期间,客户端与服务端的数据同步。但是,这种方法会产生大量的无用通信,不仅会造成客户端的流量损失,而且会导致服务端的负载过重。
发明内容
本申请提出的APP使用情况的传输方法、装置、电子设备及存储介质,用于解决相关技术中,现有在对APP进行可视化“埋点”时,保持客户端与服务端数据同步的方法,不仅会造成客户端的流量损失,而且会导致服务端的负载过重的问题。
本申请一方面实施例提出的APP使用情况的传输方法,应用于服务器,包括:建立与开发者/运营者的第一客户端之间的第一长连接;建立与用户的第二客户端之间的第二长连接;接收所述第二客户端通过所述第二长连接发送的APP的使用数据,其中,所述APP的使用数据包括APP标识;以及根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端。
本申请另一方面实施例提出的APP使用情况的传输方法,应用于开发者/运营者的第一客户端,包括:建立与服务器之间的第一长连接;通过所述第一长连接获取所述服务器发送的APP的使用数据;根据所述APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。
本申请再一方面实施例提出的APP使用情况的传输方法,应用于用户的第二客户端,包括:建立与服务器之间的第二长连接;通过所述第二长连接向所述服务器发送APP的使用数据,其中,所述APP的使用数据包括APP标识。
本申请又一方面实施例提出的APP使用情况的传输装置,应用于服务器,包括:第一建立模块,用于建立与开发者/运营者的第一客户端之间的第一长连接;第二建立模块,用于建立与用户的第二客户端之间的第二长连接;接收模块,用于接收所述第二客户端通过所述第二长连接发送的APP的使用数据,其中,所述APP的使用数据包括APP标识;发送模块,用于根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端。
本申请另一方面实施例提出的APP使用情况的传输装置,应用于开发者/运营者的第一客户端,包括:建立模块,用于建立与服务器之间的第一长连接;获取模块,用于通过所述第一长连接获取所述服务器发送的APP的使用数据;还原模块,用于根据所述APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。
本申请再一方面实施例提出的APP使用情况的传输装置,应用于用户的第二客户端,包括:建立模块,用于建立与服务器之间的第二长连接;发送模块,用于通过所述第二长连接向所述服务器发送APP的使用数据,其中,所述APP的使用数据包括APP标识。
本申请又一方面实施例提出的电子设备,其包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如前所述的APP使用情况的传输方法。
本申请另一方面实施例提出的计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如前所述的APP使用情况的传输方法。
本申请再一方面实施例提出的计算机程序,该程序被处理器执行时,以实现本申请实施例所述的APP使用情况的传输方法。
本申请实施例提供的APP使用情况的传输方法、装置、电子设备、计算机可读存储介质及计算机程序,可以建立与开发者/运营者的第一客户端之间的第一长连接,以及建立与用户的第二客户端之间的第二长连接,并接收第二客户端通过第二长连接发送的APP的使用数据,其中,APP的使用数据包括APP标识,进而根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,而且减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种APP使用情况的传输方法的流程示意图;
图2为本申请实施例所提供的另一种APP使用情况的传输方法的流程示意图;
图3为本申请实施例所提供的另一种APP使用情况的传输方法的流程示意图;
图4为本申请实施例所提供的另一种APP使用情况的传输方法的流程示意图;
图5为本申请实施例所提供的一种APP使用情况的传输方法的信令交互图;
图6为本申请实施例提供的一种APP使用情况的传输装置的结构示意图;
图7为本申请实施例提供的另一种APP使用情况的传输装置的结构示意图;
图8为本申请实施例提供的另一种APP使用情况的传输装置的结构示意图;
图9为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的要素。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
本申请实施例针对相关技术中,现有在对APP进行可视化“埋点”时,保持客户端与服务端数据同步的方法,不仅会造成客户端的流量损失,而且会导致服务端的负载过重的问题,提出一种APP使用情况的传输方法。
本申请实施例提供的APP使用情况的传输方法,可以建立与开发者/运营者的第一客户端之间的第一长连接,以及建立与用户的第二客户端之间的第二长连接,并接收第二客户端通过第二长连接发送的APP的使用数据,其中,APP的使用数据包括APP标识,进而根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,而且减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
下面参考附图对本申请提供的APP使用情况的传输方法、装置、电子设备、存储介质及计算机程序进行详细描述。
下面分别以服务器侧、开发者/运营者的第一客户端侧以及用户的第二客户端侧为例,对本申请实施例提供的APP使用情况的传输方法进行详细说明。
首先以服务器侧为例,对本申请实施例提供的APP使用情况的传输方法进行详细说明。
图1为本申请实施例所提供的一种APP使用情况的传输方法的流程示意图,该方法应用于服务器。
如图1所示,该APP使用情况的传输方法,包括以下步骤:
步骤101,建立与开发者/运营者的第一客户端之间的第一长连接。
其中,开发者/运营者的第一客户端,是指开发者/运营者在对APP进行“埋点”时所使用的终端。在通过可视化“埋点”的方式对APP进行埋点时,开发者/运营者可以通过提供统计与“埋点”服务的网站进行操作,因此,第一客户端也可以是开发者/运行者对APP进行“埋点”时使用的在网站中注册的账号。
其中,长连接,是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包的连接方式。可见,长连接在数据包发送完毕后,不会立即关闭连接,而是继续等待下一个数据包,从而降低频繁建立及关闭连接导致的服务器负担过重。
需要说明的是,在开发者/运营者对APP进行可视化“埋点”时,由于通过客户端采用定时轮询的方式,不断请求与服务器建立连接并发送数据,并在数据发送完毕后断开连接,会产生大量的无用通信,从而导致客户端的流量损失和服务器的负载过重。因此,在本申请实施例中,可以通过建立长连接的方式,实现服务器与用户、服务器与开发者/运营者之间的通信,从而使得三者之间可以通过长连接实时了解对方的状态,并在需要时,直接通过长连接向服务器发送数据,避免了重复向服务器发送连接请求或无用信息。
在本申请实施例一种可能的实现形式中,可以通过搭建socket服务器,提供socket长连接服务。首先可以建立开发者/运营者的第一客户端与服务器之间的第一长连接,以实现第一客户端与服务器直接的通信。在建立与第一客户端的第一长连接时,服务器可以根据第一客户端发送的第一连接请求,判断第一客户端的合法性,以保证网络安全。其中,第一连接请求中可以包括第一客户端的客户端标识以及合法验证码。服务器可以根据第一连接请求中的合法验证码,验证第一客户端是否合法,若合法,则可以同意第一客户端的连接请求,并将第一客户端的客户端标识存储在第一客户端字典中,建立与第一客户端之间的长连接。其中,第一客户端字典用于存储已经与服务器建立第一长连接的客户端标识。
需要说明的是,第一连接请求中的第一客户端标识可以是第一客户端对应的用户身份证明(User Identification,简称UID),可以将第一客户端唯一确定。第一连接请求中的合法验证码,可以是第一客户端对应的用户账号登录密码,或者也可以是服务器下发给第一客户端的验证码。
举例来说,在利用Token机制验证第一客户端的合法性时,第一客户端第一次与服务器进行通信时,可以通过账号和登录密码访问服务器,此时,合法验证码为登录密码。在第一客户端与服务器首次通信通验证之后,服务器会向第一客户端签发一个令牌(Token),第一客户端将该令牌缓存,并在之后与服务器通信时发送该令牌,服务器会根据第一客户端发送的令牌是否合法,确定第一客户端的合法性,此时,合法验证码为服务器下发至第一客户端的令牌。
在本申请实施例一种可能的实现形式中,第一客户端发送的第一连接请求中,还可以包括APP标识。其中,APP标识是指第一客户端请求统计其使用情况的APP对应的APP标识。比如,第一客户端A的第一连接请求中的APP标识为“微信”的标识,则第一客户端请求统计其使用情况的APP为“微信”。在服务器确定第一客户端合法之后,还可以将第一客户端的客户端标识,存储在以第一连接请求中的APP标识为索引的第一客户端字典中。。
进一步的,在本申请实施例另一种可能的实现形式中,一个APP标识对应的第一客户端字典中可以只存储一个第一客户端标识,当服务器接收到包含相同APP标识的第一连接请求时,可以拒绝该第一客户端的连接请求。
举例来说,以“微信”的标识为索引的第一客户端字典中,已经保存有第一客户端A的客户端标识,当接收到第一客户端B发送的第一连接请求,且第一连接请求中包含“微信”的标识时,可以拒绝第一客户端B的连接请求。
步骤102,建立与用户的第二客户端之间的第二长连接。
其中,用户的第二客户端,是指APP所在的客户端。
在本申请实施例中,可以通过建立与用户的第二客户端之间的第二长连接,实现服务器与第二客户端之间的实时通信,以保证服务器与第二客户端之间的数据同步,进而通过服务器实现第一客户端与第二客户端之间的数据同步。
进一步的,服务器可以根据第二客户端的连接请求,以及第一客户端的统计需求,判断是否可以与第二客户端之间建立第二长连接。即在本申请实施例一种可能的实现形式中,上述步骤102,可以包括:
接收所述第二客户端的第二连接请求,其中,所述第二连接请求包括所述APP标识以及所述第二客户端的客户端标识;
根据所述APP标识判断所述APP是否具有与其对应的第一客户端;
如果有与其对应的第一客户端,则进一步判断与所述APP标识对应的映射字典中,是否存在连接对;
如果与所述APP标识对应的映射字典中不存在连接对,则将所述第二客户端的客户端标识加入与所述APP标识对应的连接队列,并建立与所述第二客户端之间的第二长连接。
其中,APP标识,是指第二客户端中APP的认证信息,可以理解的是,不同的APP具有不同的APP标识,以通过APP标识将APP唯一确定。第二客户端的客户端标识,是指第二客户端的身份认证信息,可以理解的是,每个第二客户端都拥有唯一确定的客户端标识,比如可以是第二客户端的硬件地址或IP地址等。
需要说明的是,APP标识可以用于判断是否有相应的第一客户端需要统计该APP标识对应的APP的使用情况,即服务器在接收到第二客户端的第二连接请求之后,可以将第二连接请求中的APP标识发送给已经与其建立长连接的第一客户端,若服务器接收到第一客户端发送的确认信息,则可以确定有第一客户端需要统计该APP标识对应的APP的使用情况,即该APP标识对应的APP具有与其对应的第一客户端;若未接收到第一客户端发送的确认信息,则可以确定当前没有第一客户端需要统计该APP标识对应的APP的使用情况,即该APP标识对应的APP没有与其对应的第一客户端。
在本申请实施例另一种可能的实现形式中,服务器在接收到第二客户端的第二连接请求之后,还可以根据第二连接请求中的APP标识,查找以该APP标识为索引的第一客户端字典,判断该APP标识对应的APP是否具有与其对应的第一客户端。
具体的,若以该APP标识为索引的第一客户端字典中存在第一客户端标识,则可以确定该APP标识对应的APP具有与其对应的第一客户端;若以该APP标识为索引的第一客户端字典中不存在第一客户端标识,则可以确定该APP标识对应的APP没有与其对应的第一客户端。
需要说明的是,在确定出第二连接请求中的APP标识对应的APP具有与其对应的第一客户端之后,还需要判断与该APP标识对应的映射字典中是否已经存在连接对,若存在,则说明请求统计该APP使用情况的第一客户端,与上报该APP使用情况的第二客户端,在这之前已经建立了配对关系,通过之前建立的配对关系已经可以成功统计该APP的使用情况,无需再与其他上报该APP使用情况的第二客户端建立长连接关系,因此可以拒绝当前第二客户端的第二连接请求。若与该APP标识对应的映射字典中不存在连接对,则说明请求统计该APP使用情况的第一客户端,与上报该APP使用情况的第二客户端,在这之前还未建立配对关系,因此需要当前请求连接的第二客户端上报该APP的使用情况,即可以同意该第二客户端的第二连接请求,并将第二客户端的客户端标识加入与第二连接请求中的APP标识对应的连接队列中,等待与第一客户端建立配对关系,并建立与第二客户端之间的第二长连接。
需要说明的是,与APP标识对应的映射字典用于存储请求统计该APP使用情况的第一客户端,与上报该APP使用情况的第二客户端之间的配对关系。服务器可以根据第一客户端的获取请求中的APP标识,从与该APP标识对应的连接队列中取出一个第二客户端标识,并将该第一客户端的标识与该第二客户端的标识形成一组映射,存储在于该APP标识对应的映射字典中,完成配对。之后在获取到第二客户端发送的APP使用情况时,可以直接根据第二客户端标识和APP标识查找与APP标识对应的映射字典,将APP使用情况发送给与第二客户端标识对应的第一客户端。
步骤103,接收所述第二客户端通过所述第二长连接发送的APP的使用数据,其中,所述APP的使用数据包括APP标识。
在本申请实施例中,建立了与第一客户端之间的第一长连接,以及与第二客户端之间第二长连接之后,即可以通过第二长连接接收第二客户端发送的APP使用数据。
进一步的,为了减少第二客户端与服务器之间的无用通信,可以在用户通过第二客户端使用APP,并检测到APP的当前页面发生变化时,通过第二客户端主动将APP的使用数据发送给服务器。即在本申请实施例一种可能的实现形式中,上述步骤103之前,可以包括:
当所述第二客户端的当前页面发生变化时,发送所述APP的使用数据。
可以理解的是,第一客户端对APP的某些功能的使用情况进行统计,需要在相应的功能组件中嵌入代码,以统计该功能组件的使用情况,因此需要从APP所在的第二客户端获取APP的页面数据,即在本申请实施例中,可以在APP使用过程中,第二客户端检测到当前页面发生切换时,将APP的页面信息,即使用数据,发送给服务器,以使服务器获取到APP的各页面信息,进而实现第一客户端对APP使用情况的统计。
步骤104,根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端。
在本申请实施例中,获取到第二客户端发送的APP使用数据之后,即可以根据APP使用数据中的APP标识,查找第一客户端字典,并通过第一长连接将APP使用数据发送给与该APP标识对应的第一客户端。
本申请实施例提供的APP使用情况的传输方法,可以建立与开发者/运营者的第一客户端之间的第一长连接,以及建立与用户的第二客户端之间的第二长连接,并接收第二客户端通过第二长连接发送的APP的使用数据,其中,APP的使用数据包括APP标识,进而根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,而且减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
在本申请一种可能的实现形式中,对于同一个APP,还可以通过在同一时刻只建立一对第一客户端与第二客户端的连接对,并将接收的第二客户端发送的APP使用数据,发送给与第二客户端对应的第一客户端,以保证数据传输的稳定性,并进一步减轻服务器负载。
下面结合图2,对本申请实施例提供的APP使用情况的传输方法进行进一步说明。
图2为本申请实施例所提供的另一种APP使用情况的传输方法的流程示意图,该方法应用于服务器。
如图2所示,该APP使用情况的传输方法,包括以下步骤:
步骤201,建立与开发者/运营者的第一客户端之间的第一长连接,以及与用户的第二客户端之间的第二长连接。
上述步骤201的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
步骤202,接收所述第二客户端通过所述第二长连接发送的APP的使用数据,其中,所述APP的使用数据包括APP标识以及所述第二客户端的客户端标识。
需要说明的是,在本申请实施例中,服务器可以根据使用数据中的APP标识以及第二客户端的客户端标识,确定与该第二客户端对应的第一客户端,以将该获取到的APP使用数据发送给相应的第一客户端。
进一步的,为在第二客户端中显示第一客户端的相应页面,并圈选相应的功能组件进行“埋点”,第二客户端发送的APP使用数据中,还可以包括第二客户端当前页面中各功能组件的布局信息。即在本申请实施例一种可能的实现形式中,所述APP的使用数据还可以包括:
所述第二客户端的当前页面截图以及所述当前页面中各功能组件的空间布局结构数据,以使所述第一客户端根据所述当前页面截图和所述当前页面中各功能组件的空间布局结构数据对所述第二客户端的当前页面进行还原。
其中,各功能组件的空间布局结构数据,可以包括各功能组件的路径、尺寸、左上角的起始位置、当前页面截图左上角的起始位置及整体尺寸,并且尺寸、左上角的起始位置、当前页面截图左上角的起始位置及整体尺寸都以物理像素进行表示。功能组件的路径是指功能组件在代码中规定的路径,用于指示功能组件所在的页面。
需要说明的是,由于第一客户端与第二客户端的显示屏尺寸、分辨率等不同,因此需要获取第二客户端的当前页面截图以及当前页面中各功能组件的空间布局结构数据,以使第一客户端可以对第二客户端的当前页面进行精准还原,保证第一客户端圈选功能组件的准确性。
步骤203,根据所述APP标识获取与所述APP标识对应的映射字典。
其中,与APP标识对应的映射字典,用于存储请求统计该APP使用情况的第一客户端,与上报该APP使用情况的第二客户端之间的配对关系。
步骤204,判断所述第二客户端的客户端标识是否在所述映射字典之中,若是,则执行步骤206;否则,执行步骤205。
步骤205,获取与所述APP标识对应的所述第一客户端的客户端标识,并将所述第一客户端的客户端标识与所述第二客户端的客户端标识作为一组映射,加入所述映射字典中。
在本申请实施例中,获取到第二客户端发送的APP使用数据之后,即可以根据APP使用数据中的APP标识,获取与APP标识对应的映射字典,并查找映射字典中是否存在第二客户端对应的客户端标识,即是否当前是否已有第一客户端与该第二客户端进行配对。若存在,则可以确定当前已有第一客户端与该第二客户端进行配对。若不存在,则可以确定当前未有第一客户端与该第二客户端进行配对,即可以根据APP使用数中包括的APP标识,获取以该APP标识为索引的第一客户端字典,并从该第一客户端字典中,获取与该APP标识对应的第一客户端的客户端标识,并将获取到的第一客户端的客户端标识与第二客户端的客户端标识形成一组映射,存储在与该APP标识对应的映射字典中,以使第一客户端与第二客户端进行配对。
步骤206,通过所述第一长连接将所述APP的使用数据发送至与所述第二客户端的客户端标识对应的所述第一客户端。
可以理解的是,在根据第二客户端发送的APP标识,从与该APP标识对应的映射字典中,获取到与第二客户端的客户端标识对应的第一客户端的客户端标识之后,即可将获取到的第二客户端发送的APP的使用数据,通过第一连接发送给第一客户端,以使第一客户端可以根据获取到的APP使用数据,对第二客户端的页面进行还原并显示。
本申请实施例提供的APP使用情况的传输方法,可以建立与开发者/运营者的第一客户端之间的第一长连接,以及与用户的第二客户端之间的第二长连接,并接收第二客户端通过第二长连接发送的APP的使用数据,之后根据使用数据中包括的APP标识以及第二客户端的客户端标识,确定与第二客户端的客户端标识对应的第一客户端,进而根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载,而且可以通过APP使用数据中第二客户端当前页面的截图以及当前页面各功能组件的空间布局结构数据,使得第一客户端对第二客户端的当前页面进行精准还原,提高了圈选功能组件的准确性。
下面以开发者/运营者的第一客户端侧为例,对本申请实施例提供的APP使用情况的传输方法进行详细说明。
下面结合图3,对本申请实施例提供的APP使用情况的传输方法,进行进一步说明。
图3为本申请实施例所提供的另一种APP使用情况的传输方法的流程示意图,该方法应用于开发者/运营者的第一客户端。
如图3所示,该APP使用情况的传输方法,包括以下步骤:
步骤301,建立与服务器之间的第一长连接。
其中,开发者/运营者的第一客户端,是指开发者/运营者在对APP进行“埋点”时所使用的终端。在通过可视化“埋点”的方式对APP进行埋点时,开发者/运营者可以通过提供统计与“埋点”服务的网站进行操作,因此,第一客户端也可以是开发者/运行者对APP进行“埋点”时使用的在网站中注册的账号。
其中,长连接,是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包的连接方式。可见,长连接在数据包发送完毕后,不会立即关闭连接,而是继续等待下一个数据包,从而降低频繁建立及关闭连接导致的服务器负担过重。
需要说明的是,在开发者/运营者对APP进行可视化“埋点”时,由于通过客户端采用定时轮询的方式,不断请求与服务器建立连接并发送数据,并在数据发送完毕后断开连接,会产生大量的无用通信,从而导致客户端的流量损失和服务器的负载过重。因此,在本申请实施例中,可以通过建立长连接的方式,实现服务器与用户、服务器与开发者/运营者之间的通信,从而使得三者之间可以通过长连接实时了解对方的状态,并在需要时,直接通过长连接向服务器发送数据,避免了重复向服务器发送连接请求或无用信息。在本申请实施例一种可能的实现形式中,可以通过搭建socket服务器,提供socket长连接服务。
进一步的,第一客户端可以通过主动向服务器发送连接请求,以建立与服务器之间的长连接。即在本申请实施例一种可能的实现形式中,上述步骤301,可以包括:
向服务器发送第一连接请求,其中,所述第一连接请求中包括所述第一客户端的标识以及合法验证码。
需要说明的是,在建立与服务器的第一长连接时,可以在向服务器发送第一连接请求时,将自身的标识以及合法验证码发给给服务器,以使服务器可以根据第一客户端的客户端标识确定当前是否需要与该第一客户端建立连接,以及根据第一连接请求中的合法验证码,验证第一客户端是否合法。
需要说明的是,第一连接请求中的第一客户端标识可以是第一客户端对应的用户身份证明(User Identification,简称UID),可以将第一客户端唯一确定。第一连接请求中的合法验证码,可以是第一客户端对应的用户账号登录密码,或者也可以是服务器下发给第一客户端的验证码。
举例来说,在利用Token机制验证第一客户端的合法性时,第一客户端第一次与服务器进行通信时,可以通过账号和登录密码访问服务器,此时,合法验证码为登录密码。在第一客户端与服务器首次通信通验证之后,服务器会向第一客户端签发一个令牌(Token),第一客户端将该令牌缓存,并在之后与服务器通信时发送该令牌,服务器会根据第一客户端发送的令牌是否合法,确定第一客户端的合法性,此时,合法验证码为服务器下发至第一客户端的令牌。
在本申请实施例一种可能的实现形式中,第一客户端发送的第一连接请求中,还可以包括APP标识。其中,APP标识是指第一客户端请求统计其使用情况的APP对应的APP标识。比如,第一客户端A需要统计“微信”的使用情况,则其发送的第一连接请求中的APP标识即为“微信”的标识,以使在服务器确定第一客户端合法之后,还可以将第一客户端的客户端标识,存储在以第一连接请求中的APP标识为索引的第一客户端字典中。
步骤302,通过所述第一长连接获取所述服务器发送的APP的使用数据。
在本申请实施例中,在建立了与服务器之间的第一长连接之后,即可通过第一长连接获取服务器发送的APP的使用数据。
进一步的,第一客户端还可以根据开发者/运营者的需求,选择需要接收的APP的使用数据。即在本申请实施例一种可能的实现形式中,上述步骤302之前,可以包括:
通过所述第一长连接获取所述服务器发送的APP标识;
判断是否接收与所述APP标识对应的使用数据;
若是,则向所述服务器发送确认信息,以使所述服务器将与所述APP标识对应的使用数据发送给所述第一客户端。
需要说明的是,服务器在接收到第二客户端的第二连接请求或APP的使用数据之后,可以将第二连接请求或APP的使用数据中的APP标识发送给已经与其建立长连接的第一客户端,第一客户端根据获取到的APP标识,确定是否需要统计该APP标识对应的APP的使用数据,若需要,则向服务器返回确认信息,以使服务器在接收到该APP标识对应的使用数据时,将其发送给自己。
步骤303,根据所述APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。
在本申请实施例中,第一客户端在获取到APP的使用数据之后,即可以根据APP的使用数据,还原该APP使用数据对应的第二客户端的当前页面,进而显示该页面,意思开发者/运营者可以根据第二客户端当前显示的页面,圈选需要统计其使用数据的功能组件。
进一步的,为使得第二客户端可以根据获取到的APP的使用数据,还原第二客户端的当前页面,并圈选相应的功能组件进行“埋点”,第二客户端发送的APP使用数据中,还可以包括第二客户端当前页面中各功能组件的布局信息。即在本申请实施例一种可能的实现形式中,所述APP的使用数据还可以包括:
所述第二客户端的当前页面截图以及所述当前页面中各功能组件的空间布局结构数据。
相应的,上述步骤303,可以包括:
根据所述当前页面中各功能组件的空间布局结构数据,确定所述各功能组件在所述当前页面截图中的位置及大小;
根据所述各功能组件在所述当前页面截图中的位置及大小,显示所述当前页面截图。
其中,各功能组件的空间布局结构数据,可以包括各功能组件的路径、尺寸、左上角的起始位置、当前页面截图左上角的起始位置及整体尺寸,并且尺寸、左上角的起始位置、当前页面截图左上角的起始位置及整体尺寸都以物理像素进行表示。功能组件的路径是指功能组件在代码中规定的路径,用于指示功能组件所在的页面。
需要说明的是,第一客户端在获取到第二客户端的当前页面截图以及各功能组件的空间布局结构数据之后,即根据当前页面截图左上角的起始位置以及整体尺寸,确定出当前页面截图的显示位置及大小,并在第一客户端中显示当前页面截图,之后根据各功能组件的路径确定出各功能组件所属的页面,进而根据各功能组件的尺寸及左上角的起始位置,确定出各功能组件在当前页面截图中的位置及大小,并在将各功能组件显示在当前页面截图中,以使开发者/运营者可以根据第一客户端当前显示的页面截图,圈选需要进行统计其使用数据的功能组件。
本申请实施例提供的APP使用情况的传输方法,可以建立与服务器之间的第一长连接,并通过第一长连接获取服务器发送的APP的使用数据,进而根据APP的使用数据,还原第二客户端的当前页面,以显示第二客户端的当前页面。由此,通过建立与服务器直接的长连接,实时获取第二客户端发送的APP的使用数据,不仅实现了第一客户端与第二客户端之间的数据同步,而且实现了对第二客户端当前页面的精准还原,提高了圈选功能组件的准确性。
下面以用户的第二客户端侧为例,对本申请实施例提供的APP使用情况的传输方法进行详细说明。
下面结合图4,对本申请实施例提供的APP使用情况的传输方法,进行进一步说明。
图4为本申请实施例所提供的另一种APP使用情况的传输方法的流程示意图,该方法应用于用户的第二客户端。
如图4所示,该APP使用情况的传输方法,包括以下步骤:
步骤401,建立与服务器之间的第二长连接。
在本申请实施例中,用户的第二客户端,是指APP所在的客户端。可以通过建立用户的第二客户端与服务器之间的第二长连接,实现服务器与第二客户端之间的实时通信,以保证服务器与第二客户端之间的数据同步,进而通过服务器实现第一客户端与第二客户端之间的数据同步。
进一步的,第二客户端可以通过向服务器主动发送连接请求,以建立与服务器之间的第一长连接。即在本申请实施例一种可能的实现形式中,上述步骤401,可以包括:
向所述服务器发送第二连接请求,其中,所述第二连接请求中包括所述APP标识以及第二客户端的客户端标识。
其中,APP标识,是指第二客户端中APP的认证信息,可以理解的是,不同的APP具有不同的APP标识,以通过APP标识将APP唯一确定。第二客户端的客户端标识,是指第二客户端的身份认证信息,可以理解的是,每个第二客户端都拥有唯一确定的客户端标识,比如可以是第二客户端的硬件地址或IP地址等。
步骤402,通过所述第二长连接向所述服务器发送APP的使用数据,其中,所述APP的使用数据包括APP标识。
在本申请实施例中,建立了与服务器之间的第二长连接之后,即可以向服务器发送APP的使用数据,其中,APP的使用数据中包括的APP标识用于确定结束该APP使用数据的第一客户端。
进一步的,在本申请实施例一种可能的实现形式中,所述APP的使用数据中还可以包括第二客户端的客户端标识,以使得服务器可以根据第二客户端的客户端标识,确定与其配对的第一客户端,并将第二客户端发送的APP的使用数据,发送给相应的第一客户端。
进一步的,为了减少第二客户端与服务器之间的无用通信,可以在用户通过第二客户端使用APP,并检测到APP的当前页面发生变化时,第二客户端主动将APP的使用数据发送给服务器。即在本申请实施例一种可能的实现形式中,上述步骤402之前,可以包括:
在检测到所述当前页面发生变化时,获取所述当前页面的截图以及所述当前页面中各功能组件的空间布局结构数据。
相应的,上述步骤402,可以包括:
通过所述第二长连接向所述服务器发送获取的所述当前页面的截图以及所述当前页面中各功能组件的空间布局结构数据。
可以理解的是,第一客户端对APP的某些功能的使用情况进行统计,需要在相应的功能组件中嵌入代码,以统计该功能组件的使用情况,因此需要从APP所在的第二客户端获取APP的页面数据,即在本申请实施例中,可以在APP使用过程中,第二客户端检测到当前页面发生切换时,获取当前页面的截图以及当前页面中各功能组件的空间布局数据,进而通过第二长连接,将获取的当前页面的截图以及当前页面中各功能组件的空间布局结构数据发送给服务器。
需要说明的是,功能组件的空间布局结构数据,可以包括各功能组件的路径、尺寸、左上角的起始位置、当前页面截图左上角的起始位置及整体尺寸,并且尺寸、左上角的起始位置、当前页面截图左上角的起始位置及整体尺寸都以物理像素进行表示。功能组件的路径是指功能组件在代码中规定的路径,用于指示功能组件所在的页面。
在本申请实施例一种可能的实现形式中,可以预设当前页面截图左上角的起始位置,并且根据各功能组件左上角的起始位置在当前页面中的实际位置以及预设的当前页面截图左上角的起始位置,确定出各功能组件左上角的气死位置。
本申请实施例提供的APP使用情况的传输方法,可以建立与服务器之间的第二长连接,通过第二长连接向服务器发送APP的使用数据,其中,APP的使用数据包括APP标识。由此,通过建立与服务器直接的第二长连接,并在检测到当前页面发生变化时,主动向服务器发送APP的使用数据,从而不仅保证了第一客户端与服务器之间的数据同步,而且减少了第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
图5为本申请实施例所提供的一种APP使用情况的传输方法的信令交互图。
如图5所示,该APP使用情况的传输方法,包括以下步骤:
步骤501,第一客户端建立与服务器之间的第一长连接。
步骤502,第二客户端建立与服务器之间的第二长连接。
步骤503,第二客户端通过第二长连接向服务器发送APP的使用数据。
其中,APP的使用数据包括APP标识。
步骤504,服务器根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。
步骤505,第一客户端根据APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。
上述过程,通过第一客户端建立与服务器之间的第一长连接,通过第二客户端建立与服务器之间的第二长连接,第二客户端通过第二长连接向服务器发送APP的使用数据,其中,APP的使用数据包括APP标识,服务器根据APP标识通过第一长连接将APP的使用数据发送至第一客户端,第一客户端根据APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。由此,服务器通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,而且减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
为了实现上述实施例,本申请还提出一种APP使用情况的传输装置。
图6为本申请实施例提供的一种APP使用情况的传输装置的结构示意图,应用于服务器。
如图6所示,该APP使用情况的传输装置60,包括:
第一建立模块61,用于建立与开发者/运营者的第一客户端之间的第一长连接。
第二建立模块62,用于建立与用户的第二客户端之间的第二长连接。
接收模块63,用于接收所述第二客户端通过所述第二长连接发送的APP的使用数据,其中,所述APP的使用数据包括APP标识。
其中,所述使用数据还可以包括所述第二客户端的当前页面截图以及所述当前页面中各功能组件的空间布局结构数据,以使所述第一客户端根据所述当前页面截图和所述当前页面中各功能组件的空间布局结构数据对所述第二客户端的当前页面进行还原。
第一发送模块64,用于根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端。
在实际使用时,本申请实施例提供的APP使用情况的传输装置,可以被配置在任意电子设备中,以执行前述APP使用情况的传输方法。
本申请实施例提供的APP使用情况的传输装置,应用于服务器,可以建立与开发者/运营者的第一客户端之间的第一长连接,以及建立与用户的第二客户端之间的第二长连接,并接收第二客户端通过第二长连接发送的APP的使用数据,其中,APP的使用数据包括APP标识,进而根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,而且减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
在本申请一种可能的实现形式中,上述APP使用情况的传输装置60,还包括:
第二发送模块65,用于当所述第二客户端的当前页面发生变化时,发送所述APP的使用数据。
在本申请一种可能的实现形式中,上述第二建立模块62,具体用于:
接收所述第二客户端的第二连接请求,其中,所述第二连接请求包括所述APP标识以及所述第二客户端的客户端标识;
根据所述APP标识判断所述APP是否具有与其对应的第一客户端;
如果有与其对应的第一客户端,则进一步判断与所述APP标识对应的映射字典中,是否存在连接对;
如果与所述APP标识对应的映射字典中不存在连接对,则将所述第二客户端的客户端标识加入与所述APP标识对应的连接队列,并建立与所述第二客户端之间的第二长连接。
在本申请一种可能的实现形式中,所述使用数据中还包括所述第二客户端的客户端标识;相应的,上述第一发送模块64,具体用于:
所述根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端,包括:
根据所述APP标识获取与所述APP标识对应的映射字典;
判断所述第二客户端的客户端标识是否在所述映射字典之中;
如果在所述映射字典之中,则通过所述第一长连接将所述APP的使用数据发送至与所述第二客户端的客户端标识对应的所述第一客户端;
如果不在所述映射字典之中,则获取与所述APP标识对应的所述第一客户端的客户端标识,并将所述第一客户端的客户端标识与所述第二客户端的客户端标识作为一组映射,加入所述映射字典中,之后通过所述第一长连接将所述APP的使用数据发送至与所述第二客户端的客户端标识对应的所述第一客户端。
需要说明的是,前述对图1、图2、图3、图4或图5所示的APP使用情况的传输方法实施例的解释说明也适用于该实施例的APP使用情况的传输装置60,此处不再赘述。
本申请实施例提供的APP使用情况的传输装置,应用于服务器,可以建立与开发者/运营者的第一客户端之间的第一长连接,以及与用户的第二客户端之间的第二长连接,并接收第二客户端通过第二长连接发送的APP的使用数据,之后根据使用数据中包括的APP标识以及第二客户端的客户端标识,确定与第二客户端的客户端标识对应的第一客户端,进而根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载,而且可以通过APP使用数据中第二客户端当前页面的截图以及当前页面各功能组件的空间布局结构数据,使得第一客户端对第二客户端的当前页面进行精准还原,提高了圈选功能组件的准确性。
为了实现上述实施例,本申请还提出另一种APP使用情况的传输装置。
图7为本申请实施例提供的另一种APP使用情况的传输装置的结构示意图,应用于开发者/运营者的第一客户端。
如图7所示,该APP使用情况的传输装置70,包括:
建立模块71,用于建立与服务器之间的第一长连接;
第一获取模块72,用于通过所述第一长连接获取所述服务器发送的APP的使用数据;
还原模块73,用于根据所述APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。
在实际使用时,本申请实施例提供的APP使用情况的传输装置,可以被配置在任意电子设备中,以执行前述APP使用情况的传输方法。
本申请实施例提供的APP使用情况的传输装置,应用于开发者/运营者的第一客户端,可以建立与服务器之间的第一长连接,并通过第一长连接获取服务器发送的APP的使用数据,进而根据APP的使用数据,还原第二客户端的当前页面,以显示第二客户端的当前页面。由此,通过建立与服务器直接的长连接,实时获取第二客户端发送的APP的使用数据,不仅实现了第一客户端与第二客户端之间的数据同步,而且实现了对第二客户端当前页面的精准还原,提高了圈选功能组件的准确性。
在本申请一种可能的实现形式中,上述建立模块71,具体用于:
向服务器发送第一连接请求,其中,所述第一连接请求中包括所述第一客户端的标识以及合法验证码。
在本申请一种可能的实现形式中,上述APP使用情况的传输装置70,还包括:
第二获取模块74,用于通过所述第一长连接获取所述服务器发送的APP标识;
判断模块75,用于判断是否接收与所述APP标识对应的使用数据;
若是,则向所述服务器发送确认信息,以使所述服务器将与所述APP标识对应的使用数据发送给所述第一客户端。
在本申请一种可能的实现形式中,所述使用数据包括所述第二客户端的当前页面截图以及所述当前页面中各功能组件的空间布局结构数据;
相应的,上述还原模块73,具体用于:
根据所述当前页面中各功能组件的空间布局结构数据,确定所述各功能组件在所述当前页面截图中的位置及大小;
根据所述各功能组件在所述当前页面截图中的位置及大小,显示所述当前页面截图。
需要说明的是,前述对图1、图2、图3、图4或图5所示的APP使用情况的传输方法实施例的解释说明也适用于该实施例的APP使用情况的传输装置70,此处不再赘述。
本实施例提供的APP使用情况的传输装置,应用于开发者/运营者的第一客户端,可以建立与服务器之间的第一长连接,并通过第一长连接获取服务器发送的APP的使用数据,进而根据APP的使用数据,还原第二客户端的当前页面,以显示第二客户端的当前页面。由此,通过建立与服务器直接的长连接,实时获取第二客户端发送的APP的使用数据,不仅实现了第一客户端与第二客户端之间的数据同步,而且实现了对第二客户端当前页面的精准还原,提高了圈选功能组件的准确性。
为了实现上述实施例,本申请还提出另一种APP使用情况的传输装置。
图8为本申请实施例提供的另一种APP使用情况的传输装置的结构示意图,应用于用户的第二客户端。
如图8所示,该APP使用情况的传输装置80,包括:
建立模块81,用于建立与服务器之间的第二长连接;
发送模块82,用于通过所述第二长连接向所述服务器发送APP的使用数据,其中,所述APP的使用数据包括APP标识。
在实际使用时,本申请实施例提供的APP使用情况的传输装置,可以被配置在任意电子设备中,以执行前述APP使用情况的传输方法。
本申请实施例提供的APP使用情况的传输装置,可以建立与服务器之间的第二长连接,通过第二长连接向服务器发送APP的使用数据,其中,APP的使用数据包括APP标识。由此,通过建立与服务器直接的第二长连接,并在检测到当前页面发生变化时,主动向服务器发送APP的使用数据,从而不仅保证了第一客户端与服务器之间的数据同步,而且减少了第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
在本申请一种可能的实现形式中,所述使用数据中还包括第二客户端的客户端标识。
在本申请一种可能的实现形式中,上述建立模块81,具体用于:
向所述服务器发送第二连接请求,其中,所述第二连接请求中包括所述APP标识以及第二客户端的客户端标识。
在本申请一种可能的实现形式中,上述APP使用情况的传输装置80,还包括:
获取模块83,用于在检测到所述当前页面发生变化时,获取所述当前页面的截图以及所述当前页面中各功能组件的空间布局结构数据。
相应的,上述发送模块82,具体用于:
通过所述第二长连接向所述服务器发送获取的所述当前页面的截图以及所述当前页面中各功能组件的空间布局结构数据。
本申请实施例提供的APP使用情况的传输装置,可以建立与服务器之间的第二长连接,通过第二长连接向服务器发送APP的使用数据,其中,APP的使用数据包括APP标识。由此,通过建立与服务器直接的第二长连接,并在检测到当前页面发生变化时,主动向服务器发送APP的使用数据,从而不仅保证了第一客户端与服务器之间的数据同步,而且减少了第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
为了实现上述实施例,本申请还提出一种电子设备,应用于服务器侧、开发者/运营者的第一客户端侧以及用户的第二客户端侧。
图9为本发明一个实施例的电子设备的结构示意图。
如图9所示,上述电子设备200包括:
存储器210及处理器220,连接不同组件(包括存储器210和处理器220)的总线230,存储器210存储有计算机程序,当处理器220执行所述程序时实现本申请实施例所述的APP使用情况的传输方法。
总线230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备200典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器210还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)240和/或高速缓存存储器250。电子设备200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统260可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线230相连。存储器210可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块270的程序/实用工具280,可以存储在例如存储器210中,这样的程序模块270包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块270通常执行本发明所描述的实施例中的功能和/或方法。
电子设备200也可以与一个或多个外部设备290(例如键盘、指向设备、显示器291等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口292进行。并且,电子设备200还可以通过网络适配器293与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器293通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器220通过运行存储在存储器210中的程序,从而执行各种功能应用以及数据处理。
需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本申请实施例的APP使用情况的传输方法的解释说明,此处不再赘述。
本申请实施例提供的电子设备,可以执行如前所述的APP使用情况的传输方法,建立与开发者/运营者的第一客户端之间的第一长连接,以及建立与用户的第二客户端之间的第二长连接,并接收第二客户端通过第二长连接发送的APP的使用数据,其中,APP的使用数据包括APP标识,进而根据APP标识通过第一长连接将APP的使用数据发送至第一客户端。由此,通过与第一客户端、第二客户端分别建立长连接,并通过第二长连接获取第二客户端在检测到当前页面发生变化时,主动发送的APP的使用数据,并通过第一长连接发送给相应的第一客户端,从而不仅保证了第一客户端与第二客户端之间的数据同步,而且减少了第一客户端、第二客户端与服务器之间的无用通信,节约了客户端的流量,减轻了服务器的负载。
为了实现上述实施例,本申请还提出一种计算机可读存储介质。
其中,该计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,以实现本申请实施例所述的APP使用情况的传输方法。
为了实现上述实施例,本申请再一方面实施例提供一种计算机程序,该程序被处理器执行时,以实现本申请实施例所述的APP使用情况的传输方法。
一种可选实现形式中,本实施例可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户电子设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (19)
1.一种APP使用情况的传输方法,其特征在于,包括:
建立与开发者/运营者的第一客户端之间的第一长连接;
建立与用户的第二客户端之间的第二长连接;
接收所述第二客户端通过所述第二长连接发送的APP的使用数据,其中,所述APP的使用数据包括APP标识;以及
根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端。
2.如权利要求1所述的APP使用情况的传输方法,其特征在于,所述使用数据包括所述第二客户端的当前页面截图以及所述当前页面中各功能组件的空间布局结构数据,以使所述第一客户端根据所述当前页面截图和所述当前页面中各功能组件的空间布局结构数据对所述第二客户端的当前页面进行还原。
3.如权利要求1所述的APP使用情况的传输方法,其特征在于,其中,当所述第二客户端的当前页面发生变化时,发送所述APP的使用数据。
4.如权利要求1所述的APP使用情况的传输方法,其特征在于,所述建立与用户的第二客户端之间的第二长连接,包括:
接收所述第二客户端的第二连接请求,其中,所述第二连接请求包括所述APP标识以及所述第二客户端的客户端标识;
根据所述APP标识判断所述APP是否具有与其对应的第一客户端;
如果有与其对应的第一客户端,则进一步判断与所述APP标识对应的映射字典中,是否存在连接对;
如果与所述APP标识对应的映射字典中不存在连接对,则将所述第二客户端的客户端标识加入与所述APP标识对应的连接队列,并建立与所述第二客户端之间的第二长连接。
5.如权利要求4所述的APP使用情况的传输方法,其特征在于,所述使用数据中还包括所述第二客户端的客户端标识;
所述根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端,包括:
根据所述APP标识获取与所述APP标识对应的映射字典;
判断所述第二客户端的客户端标识是否在所述映射字典之中;
如果在所述映射字典之中,则通过所述第一长连接将所述APP的使用数据发送至与所述第二客户端的客户端标识对应的所述第一客户端;
如果不在所述映射字典之中,则获取与所述APP标识对应的所述第一客户端的客户端标识,并将所述第一客户端的客户端标识与所述第二客户端的客户端标识作为一组映射,加入所述映射字典中,之后通过所述第一长连接将所述APP的使用数据发送至与所述第二客户端的客户端标识对应的所述第一客户端。
6.一种APP使用情况的传输方法,其特征在于,包括:
建立与服务器之间的第一长连接;
通过所述第一长连接获取所述服务器发送的APP的使用数据;
根据所述APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。
7.如权利要求6所述的APP使用情况的传输方法,其特征在于,所述建立与服务器之间的第一长连接,包括:
向服务器发送第一连接请求,其中,所述第一连接请求中包括所述第一客户端的标识以及合法验证码。
8.如权利要求6所述的APP使用情况的传输方法,其特征在于,所述通过所述第一长连接获取所述服务器发送的APP的使用数据之前,还包括:
通过所述第一长连接获取所述服务器发送的APP标识;
判断是否接收与所述APP标识对应的使用数据;
若是,则向所述服务器发送确认信息,以使所述服务器将与所述APP标识对应的使用数据发送给所述第一客户端。
9.如权利要求6-8任一所述的APP使用情况的传输方法,其特征在于,所述使用数据包括所述第二客户端的当前页面截图以及所述当前页面中各功能组件的空间布局结构数据;
所述根据所述APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面,包括:
根据所述当前页面中各功能组件的空间布局结构数据,确定所述各功能组件在所述当前页面截图中的位置及大小;
根据所述各功能组件在所述当前页面截图中的位置及大小,显示所述当前页面截图。
10.一种APP使用情况的传输方法,其特征在于,包括:
建立与服务器之间的第二长连接;
通过所述第二长连接向所述服务器发送APP的使用数据,其中,所述APP的使用数据包括APP标识。
11.如权利要求10任一所述的APP使用情况的传输方法,其特征在于,所述使用数据中还包括第二客户端标识。
12.如权利要求10所述的APP使用情况的传输方法,其特征在于,所述建立与服务器之间的第二长连接,包括:
向所述服务器发送第二连接请求,其中,所述第二连接请求中包括所述APP标识以及第二客户端标识。
13.如权利要求10-12任一所述的APP使用情况的传输方法,其特征在于,所述通过所述第二长连接向所述服务器发送APP的使用数据之前,包括:
在检测到所述当前页面发生变化时,获取所述当前页面的截图以及所述当前页面中各功能组件的空间布局结构数据。
14.如权利要求13所述的APP使用情况的传输方法,其特征在于,所述通过所述第二长连接向所述服务器发送APP的使用数据,包括:
通过所述第二长连接向所述服务器发送获取的所述当前页面的截图以及所述当前页面中各功能组件的空间布局结构数据。
15.一种APP使用情况的传输装置,应用于服务器,其特征在于,包括:
第一建立模块,用于建立与开发者/运营者的第一客户端之间的第一长连接;
第二建立模块,用于建立与用户的第二客户端之间的第二长连接;
接收模块,用于接收所述第二客户端通过所述第二长连接发送的APP的使用数据,其中,所述APP的使用数据包括APP标识;
发送模块,用于根据所述APP标识通过所述第一长连接将所述APP的使用数据发送至所述第一客户端。
16.一种APP使用情况的传输装置,应用于开发者/运营者的第一客户端,其特征在于,包括:
建立模块,用于建立与服务器之间的第一长连接;
获取模块,用于通过所述第一长连接获取所述服务器发送的APP的使用数据;
还原模块,用于根据所述APP的使用数据,还原第二客户端的当前页面,以显示所述第二客户端的当前页面。
17.一种APP使用情况的传输装置,应用于用户的第二客户端,其特征在于,包括:
建立模块,用于建立与服务器之间的第二长连接;
发送模块,用于通过所述第二长连接向所述服务器发送APP的使用数据,其中,所述APP的使用数据包括APP标识。
18.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5、6-9或10-14中任一所述的APP使用情况的传输方法。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5、6-9或10-14中任一所述的APP使用情况的传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811296872.1A CN111131369B (zh) | 2018-11-01 | 2018-11-01 | App使用情况的传输方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811296872.1A CN111131369B (zh) | 2018-11-01 | 2018-11-01 | App使用情况的传输方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111131369A true CN111131369A (zh) | 2020-05-08 |
CN111131369B CN111131369B (zh) | 2022-09-27 |
Family
ID=70495032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811296872.1A Active CN111131369B (zh) | 2018-11-01 | 2018-11-01 | App使用情况的传输方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111131369B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115568036A (zh) * | 2022-10-14 | 2023-01-03 | 荣耀终端有限公司 | 一种应用连接方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009103291A1 (en) * | 2008-02-20 | 2009-08-27 | Nabto Aps | Method and system for providing connectivity between clients connected to the internet |
CN105099885A (zh) * | 2015-07-13 | 2015-11-25 | 小米科技有限责任公司 | 信息发送方法及装置 |
CN107196788A (zh) * | 2017-05-02 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种埋点数据的处理方法、装置、服务器及客户端 |
CN107818162A (zh) * | 2017-11-01 | 2018-03-20 | 平安科技(深圳)有限公司 | 埋点处理方法、装置、计算机设备和存储介质 |
CN107861655A (zh) * | 2017-11-01 | 2018-03-30 | 平安科技(深圳)有限公司 | 控件匹配方法、装置、计算机设备和存储介质 |
-
2018
- 2018-11-01 CN CN201811296872.1A patent/CN111131369B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009103291A1 (en) * | 2008-02-20 | 2009-08-27 | Nabto Aps | Method and system for providing connectivity between clients connected to the internet |
CN105099885A (zh) * | 2015-07-13 | 2015-11-25 | 小米科技有限责任公司 | 信息发送方法及装置 |
CN107196788A (zh) * | 2017-05-02 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种埋点数据的处理方法、装置、服务器及客户端 |
CN107818162A (zh) * | 2017-11-01 | 2018-03-20 | 平安科技(深圳)有限公司 | 埋点处理方法、装置、计算机设备和存储介质 |
CN107861655A (zh) * | 2017-11-01 | 2018-03-30 | 平安科技(深圳)有限公司 | 控件匹配方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115568036A (zh) * | 2022-10-14 | 2023-01-03 | 荣耀终端有限公司 | 一种应用连接方法及电子设备 |
CN115568036B (zh) * | 2022-10-14 | 2023-10-20 | 荣耀终端有限公司 | 一种应用连接方法、电子设备、芯片及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111131369B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018120722A1 (zh) | 异步接口测试方法、终端、设备、系统及存储介质 | |
US11509505B2 (en) | Method and apparatus for operating smart network interface card | |
CN109039987A (zh) | 一种用户账户登录方法、装置、电子设备和存储介质 | |
CN110798445B (zh) | 公共网关接口测试方法、装置、计算机设备及存储介质 | |
CN104601601A (zh) | 网络爬虫的检测方法及装置 | |
CN110069413B (zh) | 测试数据通信、测试方法、装置、设备及存储介质 | |
CN112990400B (zh) | 基于nfc标签的场景服务方法、装置及系统 | |
CN111241523B (zh) | 认证处理方法、装置、设备和存储介质 | |
CN112631911A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
KR20170041523A (ko) | 스크래핑 서비스 제공 방법, 그를 위한 서버 장치 및 시스템 | |
WO2017071121A1 (zh) | 一种用于建立无线连接的方法与设备 | |
CN108280024B (zh) | 流量分配策略测试方法、装置及电子设备 | |
CN109656791B (zh) | 一种基于Jmeter的gRPC性能测试方法及装置 | |
CN111131369B (zh) | App使用情况的传输方法、装置、电子设备及存储介质 | |
CN107453937B (zh) | 网络连接池的管理方法、网络访问方法及相关设备 | |
CN113822036B (zh) | 一种隐私政策内容生成方法、装置及电子设备 | |
CN113709136B (zh) | 一种访问请求验证方法和装置 | |
CN114006757A (zh) | Gis服务的访问控制方法、装置、架构、介质及设备 | |
CN113852610A (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN108471635B (zh) | 用于连接无线接入点的方法和设备 | |
CN110995658A (zh) | 网关保护方法、装置、计算机设备及存储介质 | |
CN112261051B (zh) | 一种用户注册方法、装置及系统 | |
US20230196421A1 (en) | Program, information processing method, and information processing apparatus | |
CN109005084B (zh) | 验证网络连接的方法、电子设备和计算机可读介质 | |
CN114861054A (zh) | 信息采集方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |