CN113242284A - 通信方法、装置及通信系统 - Google Patents

通信方法、装置及通信系统 Download PDF

Info

Publication number
CN113242284A
CN113242284A CN202110480480.6A CN202110480480A CN113242284A CN 113242284 A CN113242284 A CN 113242284A CN 202110480480 A CN202110480480 A CN 202110480480A CN 113242284 A CN113242284 A CN 113242284A
Authority
CN
China
Prior art keywords
heartbeat
data
equipment
input
server
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
Application number
CN202110480480.6A
Other languages
English (en)
Other versions
CN113242284B (zh
Inventor
李志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Youzhuju Network Technology Co Ltd
Original Assignee
Beijing Youzhuju Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Youzhuju Network Technology Co Ltd filed Critical Beijing Youzhuju Network Technology Co Ltd
Priority to CN202110480480.6A priority Critical patent/CN113242284B/zh
Publication of CN113242284A publication Critical patent/CN113242284A/zh
Application granted granted Critical
Publication of CN113242284B publication Critical patent/CN113242284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及一种通信方法、装置及通信系统,该方法应用于通信系统,所述通信系统包括:客户端设备和服务端设备;服务端设备包括:用户态的接收进程、与客户端设备包括的心跳输入设备对应的虚拟心跳设备及输入子系统;心跳输入设备,用于根据预设的模拟事件生成心跳数据,并将心跳数据发送至服务端设备;服务端设备的接收进程接收心跳数据,并将心跳数据分发至虚拟心跳设备,由虚拟心跳设备将心跳数据传输至输入子系统,输入子系统向服务端设备的目标应用程序的进程发送心跳数据,以使目标应用程序的进程根据心跳数据执行相应处理。通过该方法,服务端设备中应用层的各应用程序均能较好地感知网络状态的变化。

Description

通信方法、装置及通信系统
技术领域
本公开涉及通信技术领域,尤其涉及一种通信方法、装置及通信系统。
背景技术
无线投屏系统由客户端设备和服务端设备组成,其中,键盘、鼠标、触摸屏等输入设备连接至客户端设备。在无线投屏系统中,服务端设备接收客户端设备发送的输入事件,并将输入事件透传至服务端设备的输入子系统(input system)中,进而服务端设备中的相关应用程序(application,APP)根据输入子系统获取的输入事件生成显示内容,并通过无线网络将显示内容传输至客户端设备,客户端设备将其显示在显示屏幕上。
在无线网络环境中,常常会出现网络中断或者网络延迟等异常情况,为了解决这类问题,通常在无线网络传输场景中加入心跳机制。具体方式为:发送端设备周期性地发送心跳数据(Heartbeat),当接收端设备在预设时长内没有接收到心跳数据,则确定发送端设备与接收端设备之间的网络状态异常。
现有技术中,心跳机制通常是在网络协议层实现。通过网络协议层实现心跳机制,如TCP协议有keepalive的选项设置,可以设置心跳间隔,并且是在网络协议层自动应答。但是,通过网络协议层实现心跳机制,应用层中的各应用程序无法较好地感知网络状态的变化。将现有技术中的心跳机制实现方式应用于上述无线投屏系统中,服务端设备的应用层中的各应用程序无法较好地感知网络状态的变化。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种通信方法、装置及通信系统。
第一方面,本公开实施例提供了一种通信方法,该方法应用于通信系统,所述通信系统包括:客户端设备和服务端设备;所述服务端设备包括:用户态的接收进程、与所述客户端设备的心跳输入设备相对应的虚拟心跳设备以及输入子系统;所述心跳输入设备用于根据预设的模拟事件生成心跳数据;所述方法包括:
所述接收进程从所述客户端设备接收所述心跳数据,并将所述心跳数据发送至所述虚拟心跳设备;
所述虚拟心跳设备将所述心跳数据发送至所述输入子系统;
所述输入子系统向所述服务端设备的目标应用程序的进程发送所述心跳数据,以使所述目标应用程序的进程根据所述心跳数据执行相应处理。
在一些可能的设计中,所述虚拟心跳设备将所述心跳数据发送至所述输入子系统,包括:
若所述虚拟心跳设备确定所述心跳数据的数据格式满足所述服务端设备的输入子系统的数据格式要求时,则所述虚拟心跳设备将所述心跳数据发送至所述输入子系统。
在一些可能的设计中,所述虚拟心跳设备将所述心跳数据发送至所述输入子系统,包括:
若所述虚拟心跳设备确定所述心跳数据的数据格式不满足所述服务端设备的输入子系统的数据格式要求时,所述虚拟心跳设备根据所述输入子系统的数据格式要求对所述心跳数据进行格式转换,并将格式转换后的心跳数据发送至所述输入子系统。
在一些可能的设计中,所述心跳数据是所述客户端设备的心跳输入设备根据预设的模拟键盘事件生成的。
在一些可能的设计中,所述模拟键盘事件包括:模拟按压事件和模拟弹起事件;
所述心跳数据包括:所述模拟按压事件对应的数据和所述模拟弹起事件对应的数据。
在一些可能的设计中,所述方法还包括:
所述服务端设备与所述客户端设备建立连接后,根据所述心跳输入设备的设备类型创建所述虚拟心跳设备。
在一些可能的设计中,所述方法还包括:
若所述输入子系统在预设时长内,未从所述虚拟心跳设备获取心跳数据,则所述输入子系统调用错误处理流程。
在一些可能的设计中,所述客户端还包括:至少一个实体输入设备;所述服务端还包括:与所述至少一个实体输入设备一一对应的虚拟输入设备;所述至少一个实体输入设备分别对应的数据传输通道相互独立;所述方法还包括:
所述心跳数据对应的传输通道与所述至少一个实体输入设备分别对应的数据传输通道相互独立。
第二方面,本公开实施例提供了一种服务端设备,应用于通信系统,所述通信系统包括:客户端设备和服务端设备;
所述服务端设备包括:用户态的接收进程、与所述客户端设备的心跳输入设备相对应的虚拟心跳设备以及输入子系统;所述心跳输入设备用于根据预设的模拟事件生成心跳数据;
所述接收进程,用于从客户端设备接收心跳数据;并将所述心跳数据发送至所述虚拟心跳设备;
所述虚拟心跳设备,用于从所述接收进程接收所述心跳数据;并将所述心跳数据发送至所述输入子系统;
所述输入子系统,用于向所述服务端设备的目标应用程序的进程发送所述心跳数据,以使所述目标应用程序的进程根据所述心跳数据执行相应处理。
第三方面,本公开实施例提供了一种电子设备,包括:存储器、处理器以及计算机程序指令;
所述存储器,被配置为存储所述计算机程序指令;
所述处理器,被配置为执行所述计算机程序指令;当所述处理器执行所述计算机程序指令,以执行第一方面任一项所述的通信方法。
第四方面,本公开实施例提供了一种可读存储介质,包括:程序;所述服务端设备的至少一个处理器执行所述计算机程序指令,以执行第一方面任一项所述的通信方法。
第五方面,本公开一实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质中读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得所述电子执行如第一方面任一项所述的通信方法。
第六方面,本公开一实施例提供了一种通信系统,包括:客户端设备和服务端设备;所述客户端设备包括:心跳输入设备;所述服务端设备包括:用户态的接收进程、与所述心跳输入设备相对应的虚拟心跳设备以及输入子系统;
所述心跳输入设备,用于根据预设的模拟事件生成心跳数据;并将所述心跳数据发送至所述服务端设备;
所述服务端设备用于执行如第一方面任一项所述的通信方法。
在一些可能的设计中,所述客户端还包括:至少一个实体输入设备;所述服务端还包括:与所述至少一个实体输入设备一一对应的虚拟输入设备;
所述至少一个实体输入设备分别对应的数据传输通道相互独立;
所述心跳数据对应的传输通道与所述至少一个实体输入设备分别对应的数据传输通道相互独立。
本公开实施例提供一种通信方法、装置及通信系统,其中,该方法应用于包括:客户端设备和服务端设备的通信系统,其中,所述客户端设备包括:心跳输入设备;所述服务端设备包括:用户态的接收进程、与所述心跳输入设备相对应的虚拟心跳设备以及输入子系统;所述心跳输入设备,用于根据预设的模拟事件生成心跳数据;并将所述心跳数据发送至所述服务端设备;所述服务端设备的接收进程接收心跳数据,并将心跳数据分发至虚拟心跳设备,由虚拟心跳设备将心跳数据传输至输入子系统中,之后输入子系统向服务端设备的目标应用程序的进程发送心跳数据,以使所述目标应用程序的进程根据心跳数据执行相应处理。通过该方法,服务端设备中应用层各应用程序均能较好地感知网络状态的变化。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一实施例提供的通信系统的结构示意图;
图2为本公开一实施例提供的服务端设备的结构示意图;
图3为本公开一实施例提供的通信方法的流程图;
图4为本公开另一实施例提供的通信方法的流程图;
图5为本公开另一实施例提供的通信系统的结构示意图;
图6为本公开一实施例提供的服务端设备的结构示意图;
图7为本公开一实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
无线投屏系统目前应用较为广泛,例如,企业会议、教育教学等等。具体地,无线投屏系统包括:客户端设备和服务端设备,客户端设备与服务端设备通过无线网络连接,如WiFi网络。其中,客户端设备可以与键盘、鼠标、触摸屏、摇杆、按键等实体输入设备有线或者无线连接,用户可以通过上述任一实体输入设备控制客户端设备的显示内容。
无线投屏系统的具体处理流程如下:当用户操作客户端设备连接的任一输入设备时,客户端设备检测用户的输入操作,并根据输入操作生成输入事件;然后将输入事件通过无线网络传输至服务端设备。服务端设备的输入子系统获取输入事件,并通知应用层的应用程序根据输入事件生成待显示的图像,之后,将待显示的图像数据回传至客户端设备,客户端设备对待显示的图像数据进行解码以及显示。也就是说,客户端设备连接的输入设备相当于服务端设备的无线输入设备。
在无线网络环境中,常常会出现网络中断或者网络延迟等异常情况,为了解决这类问题,通常在无线网络传输场景中加入心跳机制。具体方式为:发送端设备周期性地发送心跳数据(Heartbeat),当接收端设备在预设时长内没有接收到心跳数据,则确定发送端设备与接收端设备之间的网络状态异常。
现有技术中,心跳机制通常是在网络协议层实现。通过网络协议层实现心跳机制,如传输控制协议(Transmission Control Protocol,TCP)有keepalive的选项设置,可以设置心跳间隔(也可以称为:心跳周期),并且是在网络协议层自动应答。但是,通过网络协议层实现心跳机制,应用层以及其他网络实体层无法较好地感知网络状态的变化。将上述心跳机制实现方式应用于上述无线投屏系统中,服务端设备的应用层中的各应用程序无法较好地感知网络状态的变化。
另外,现有技术中还有通过在应用层实现心跳机制的方式。即发送端设备的应用程序A周期性地发送一个数据包,接收端设备的应用程序A若能够正常接收数据包,则说明网络状态正常;若接收端设备的应用程序A在设定时间内没有接收到数据包,则说明网络状态异常。但是,通过应用层实现心跳机制,仅发送数据包的应用程序A能够感知网络状态,除应用程序A之外的其他应用程序,例如应用程序B,则无法获取心跳数据,进而无法感知网络状态。将上述心跳机制实现方式应用于上述无线投屏系统中,服务端设备的应用层中的各应用程序无法较好地感知网络状态的变化。
针对上述问题,本公开实施例提供一种通信方法,该方法利用Uinput模块预先创建虚拟心跳设备,并通过虚拟心跳设备将心跳数据传输至输入子系统,进而通过输入子系统使应用层的各应用程序能够通过心跳数据感知网络状态的变化。
其中,Uinput模块是一个内核模块,它使从用户空间模拟输入设备成为可能。通过写入/dev/uinput(或者,/dev/input/uinput)设备,可以创建具有特定功能的虚拟输入设备。一旦创建虚拟输入设备,便可以通过虚拟输入设备向输入子系统发送事件,之后,被传递给用户空间或者内核的其他模块。
下面通过几个具体实施例,对本公开实施例提供的通信方法进行详细介绍:
图1为本公开一实施例提供的通信系统的结构示意图。图2为本公开一实施例提供的服务端设备的结构示意图。如图1所示,该通信系统100包括:客户端设备101和服务端设备102,客户端设备101与服务端设备102可以通过无线网络连接,例如,WiFi网络。
当然,在实际应用中,客户端设备101与服务端设备102也可以通过有线连接。图1中仅是示例,并不是对客户端设备101与服务端设备102之间的连接方式的限制。
其中,客户端设备101例如可以为包括投屏器和显示器的显示系统,投屏器与显示器可以有线或者无线连接。其中,投屏器具备无线通信能力,可以通过无线网络与服务端设备102进行交互。
服务端设备102可以为独立的服务器,也可以为一组服务器,或者服务端设备102也可以为其他类型电子设备,例如,智能手机,笔记本电脑、掌上电脑等。
客户端设备101包括:心跳输入设备,该心跳输入设备能够周期性地根据预设的模拟事件自动生成心跳数据,并将心跳数据通过心跳数据对应的传输通道发送至服务端设备102。应理解,心跳输入设备是客户端设备101的一个软件模块,并没有实际的物理输入设备与其对应。
在一些可能的设计中,客户端设备101还可以包括:至少一个实体输入设备,其中,实体输入设备可以包括但不限于键盘、鼠标、触摸屏、摇杆、按键中的一个或多个。
结合图1以及图2所示,服务端设备102包括:用户态的接收进程、与心跳输入设备相对应的虚拟心跳设备以及输入子系统。
输入子系统包括:输入设备层、输入驱动层、核心层、事件处理层、设备节点层以及框架层。输入子系统通过设备节点层以及操作系统中的框架层,实现与应用层的各应用程序之间的通信。
由于输入设备的种类繁杂,输入设备的驱动通常采用字符设备或者misc设备,但是数量较多的输入设备会导致驱动混乱,因此,引入输入子系统在字符设备等上抽象出一层来统一输入设备的驱动。输入子系统向上能够为用户态的各应用程序提供调用接口,向下能够为驱动层提供统一的注册接口。
其中,输入设备层,包括实体输入设备或者虚拟输入设备;实体的输入设备包括但不限于:键盘、鼠标、触摸屏等;虚拟输入设备包括但不限于:虚拟键盘、虚拟鼠标、虚拟触摸屏等。
输入驱动层负责操作实体的硬件输入设备,包括:各输入设备对应的驱动程序。
核心层是链接输入驱动层和事件处理层的桥梁,向下提供输入驱动层的接口,向上提供事件处理层的接口。
事件处理层负责与应用层的各应用程序之间的交互,其能够将核心层传输的事件报告给各应用程序。事件处理层包括:各输入设备分别对应的事件处理程序,当有输入事件达到时,则调用相应的事件处理程序执行该输入事件的相关处理。
其中,上述输入驱动层、输入核心层以及事件处理层属于内核态。
目前,输入子系统是通过设备节点层来实现事件处理层与应用层之间的通信接口。本方案中,服务端设备的虚拟心跳设备即部署在输入子系统的设备节点层,用于实现输入子系统与应用层的各应用程序之间的心跳数据交互。其中,虚拟心跳设备可以是客户端设备与服务端设备建立连接后,服务端设备根据心跳输入设备的设备类型创建的。应理解,在无线投屏系统中,心跳输入设备的设备类型可以是预先设定的。
当然,设备节点层还包括其他设备,这部分与现有技术中类似,此处不再赘述。
框架层(Framework)是操作系统的标准框架,这层的代码均为用户态代码,本方案中,服务端设备的接收进程即部署在框架层,用于实现客户端设备、服务端设备的输入子系统以及服务端设备的应用层的各应用程序之间的心跳数据交互。
采用本公开实施例提供的通信系统,在实现客户端设备与服务端设备之间的心跳机制时,能够实现服务端设备的应用层的各应用程序均能够较好地感知网络变化,且不会对当前服务端设备的操作系统中的标准处理流程产生额外的影响,可扩展性较强。
需要说明的是,本公开实施例提供的通信方法不仅可以应用于图1所示的通信系统,还可以应用于其他存在相同或者相似技术问题的通信系统中。
图3为本公开一实施例提供的通信方法的流程图。本实施例提供的通信方法应用于图1所示的通信系统。如图3所示,本实施例的方法包括:
S301、客户端设备的心跳输入设备根据预设的模拟事件生成心跳数据。
在一些可能的实现方式中,预设的模拟事件可以为预设的模拟键盘事件、模拟鼠标事件、模拟摇杆事件等等。应理解,在实际应用中,预设的模拟事件并不限于上述方式。
若预设的模拟事件为模拟键盘事件时,该预设模拟键盘事件包括模拟按压事件和模拟弹起事件。相应地,心跳数据包括模拟按压事件对应的数据和模拟弹起事件对应的数据。从而保证服务端设备接收到正确的心跳数据。示例性地,若将模拟按压事件对应的数据和模拟弹起事件对应的数据通过2个数据包发送,虽然会减小心跳数据包的数据量,但是在客户端设备与服务端设备之间网络状态异常的情况下,可能会出现服务端设备接收到模拟按压事件对应的数据,但未接收到模拟弹起事件对应的数据,进而会导致输入子系统将心跳数据处理为长按键事件对应的数据。
在一些可能的实现方式中,心跳输入设备可以周期性地生成心跳数据,例如,每隔100ms生成一个心跳数据。
S302、心跳输入设备向服务端设备发送所述心跳数据。相应地,服务端设备的接收进程接收心跳数据。
本方案中,客户端设备与服务端设备之间通过无线网络连接,心跳输入设备通过客户端设备的发送进程向服务端设备发送心跳数据。
客户端设备可以通过专用的传输通道向服务端设备发送心跳数据,也可以通过已有的数据传输通道或者控制传输通道向服务端设备发送心跳数据,本公开实施例对此不作限制。
其中,服务端设备的接收进程是一个守护进程。本方案中,接收进程是部署在图2所示的框架层的,其属于用户态的进程。
接收进程可以在服务端设备的操作系统引导时启动,并且一直运行到操作系统关闭。或者,接收进程也可以在一些特定的时刻启动,然后一直运行到操作系统关闭。
S303、接收进程将心跳数据发送至虚拟心跳设备。
接收进程能够实现数据接收以及数据分发的功能。本实施例总,接收进程通过对心跳数据进行解析,从而将心跳数据分发至虚拟心跳设备。
S304、虚拟心跳设备将心跳数据发送至输入子系统。
S305、输入子系统向目标APP的进程发送心跳数据,以使目标APP的进程根据心跳数据执行相应的处理。
本方案中,输入子系统能够向上向应用层的各应用程序提供接口,但其具体实现时,是通过虚拟心跳设备实现的。因此,输入子系统向目标应用程序的进程发送心跳数据的具体实现方式为:
输入子系统通过设备节点层中相应的设备,向目标应用程序的进程发送心跳数据,以使目标应用程序的进程能够获取心跳数据,进而根据心跳数据及时感知网络状态的变化。
该目标应用程序可以为应用层的任意一个或多个应用程序。
本实施例中,客户端设备的心跳输入设备根据预设的模拟事件生成心跳数据,并将心跳数据发送至服务端设备;服务端设备的接收进程接收心跳数据,并将心跳数据分发至虚拟心跳设备,由虚拟心跳设备将心跳数据传输至输入子系统中,之后输入子系统向服务端设备的目标应用程序的进程发送心跳数据,以使目标应用程序的进程根据心跳数据执行相应处理。
本实施例提供的通信方法至少具有以下有益效果:服务端设备的应用层的各应用程序均能较好地感知网络状态的变化;且不会对当前服务端设备的操作系统中的标准处理流程产生额外的影响,可扩展性较强。
在实际应用中,心跳数据可以是预设的模拟键盘事件对应的数据,也可以是其他自定义的数据。且心跳数据可以采用标准的事件数据的格式,也可以采用其他自定义的数据格式。
若心跳数据采用标准的输入事件数据格式,则虚拟心跳设备无需对心跳数据进行格式转换,可采用图3所示实施例的方式,虚拟心跳设备将心跳数据发送至输入子系统;若心跳数据采用自定义的数据格式,则需要对自定义的数据格式进行转换,以满足输入子系统的数据格式要求。
具体地,图4为本公开另一实施例提供的通信方法的流程图。如图4所示,本实施例的方法包括:
S401、心跳输入设备生成心跳数据。
S402、心跳输入设备向服务端设备发送所述心跳数据。
S403、接收进程将心跳数据发送至虚拟心跳设备。
本实施例中步骤S401至S403分别与图3所示实施例中S301至S303类似,可参照图3所示实施例的详细描述,此处不再赘述。
S404、虚拟心跳设备根据输入子系统的数据格式要求,对心跳数据进行格式转换。
具体地,在操作系统中,输入设备的每次操作(如按压按键、移动鼠标、点击触摸屏幕等操作)用一个或多个输入事件表示,输入子系统对输入事件有统一的数据格式要求,包含:时间戳、数据代码以及数值这几个元素。例如:
[3092.887242]/dev/input/event3:EV_KEY BTN_TOUCH DOWN
其中,[3092.887242]表示时间戳,/dev/input/event3表示输入设备节点名称,EV_KEY表示事件类型,BTN_TOUCH表示事件代码,DOWN表示事件数值。
示例性地,若预设的模拟事件为模拟键盘事件,心跳数据包含键值以及时间戳,其数据格式与输入子系统要求的数据格式不同,因此,虚拟心跳设备按照输入子系统要求的数据格式对心跳数据进行格式转换。
S405、虚拟心跳设备将格式转换后的心跳数据发送至输入子系统。
S406、输入子系统向目标应用程序的进程发送格式转换后的心跳数据,以使目标应用程序的进程根据心跳数据执行相应的处理。
本实施例中步骤S405、S406分别与图3所示实施例中S304、S305类似,可参照图3所示实施例的详细描述,此处不再赘述。
本实施例中,客户端设备的心跳输入设备根据预设的模拟事件生成心跳数据,并将心跳数据发送至服务端设备;服务端设备的接收进程接收心跳数据,并将心跳数据分发至虚拟心跳设备,由虚拟心跳设备对心跳数据进行格式转换,并将格式转换后的心跳数据传输至输入子系统中,之后输入子系统向服务端设备的目标应用程序的进程发送格式转换后的心跳数据,以使目标应用程序的进程根据格式转换后的心跳数据执行相应处理。通过该方法,服务端设备的应用层的各应用程序均能较好地感知网络状态的变化。且不会对当前服务端设备的操作系统中的标准处理流程产生额外的影响,可扩展性较强。
在一个具体的实施例中,以通信系统为无线投屏系统,服务端设备为智能手机,客户端设备为无线屏设备为例进行说明。其中,图5示出了该无线投屏系统的传输框架。参照图5所示,无线屏设备包括3个实体输入设备,分别为:键盘、触摸屏以及鼠标,无线屏设备还包括:心跳输入设备。该无线投屏系统具有以下特点:
(1)无线屏设备连接的各输入设备在智能手机中都有各自对应的虚拟输入设备,如无线屏设备连接的键盘(keyboard)与智能手机中的虚拟键盘(virtual keyboard)对应,无线屏设备连接的鼠标(mouse)与智能手机中的虚拟鼠标(virtual mouse)对应,无线屏设备连接的触摸屏(touch panel)与智能手机中的虚拟鼠标(virtual touch panel)对应。
(2)心跳输入设备与虚拟心跳设备对应。
(3)每个实体输入设备对应一个独立的传输通道,各输入设备产生的输入事件数据通过各自的通道传输,因此,各输入设备之间相互独立。这些传输通道可以为单向的传输通道,用于客户端设备向服务端设备发送数据。参照图5所示,键盘对应传输通道1,鼠标对应传输通道2,触摸屏对应传输通道3。
(4)心跳输入设备相当于一个特殊的输入设备,其也对应独立的传输通道,用于传输心跳数据。参照图5所示,心跳数据对应心跳数据传输通道,该心跳数据传输通道为单向的传输通道,用于客户端设备向服务端设备发送心跳数据。
(5)无线投屏系统中还可以包括一个双向的控制通道用于客户端设备和服务端设备之间的数据交互。
本实施例中,预设的模拟事件为模拟键盘事件时,心跳输入设备相当于虚拟的键盘,则虚拟心跳设备相当于虚拟键盘,本方案中,将虚拟心跳设备与实体键盘对应的虚拟键盘相互独立,能够减小用户操作实体键盘产生的输入事件的数据与心跳数据之间的混乱现象,进而保证了实体键盘产生的输入事件的数据与心跳数据的正确传输。
另外,本方案中,各实体输入设备的传输通道以及心跳输入设备的传输通道均为独立的传输通道,能够避免不同的输入事件的数据产生混乱的问题。
在此基础上,客户端设备主要执行以下流程:
A、执行心跳数据的传输通道的相关配置操作;
B、启动定时器处理函数,周期为100ms;
C、在B中的定时器处理中,将预设的模拟键盘事件对应的数据(即心跳数据)写入心跳数据的传输通道中。这里以自定义键值0×02f8为预设的模拟键盘事件对应的键值。
服务端设备主要执行以下流程:
A、使用Uinput模块,创建虚拟心跳设备。
B、初始化心跳数据的传输通道。
C、当心跳数据到达时,接收进程将心跳数据分发至虚拟心跳设备。
D、通过操作系统的标准处理流程,心跳数据通过虚拟心跳设备传输至输入子系统中。
E、服务端设备的上层系统或者应用层的各应用程序通过输入子系统获取心跳数据,并根据获取的心跳数据执行相应的处理。例如,在预设时长(如500ms)内未收到心跳数据,则表示网络状态异常,进而调用相应的错误处理流程。
通过上述方式,实现了无线投屏系统中的心跳机制,且服务端设备的应用层中的各应用程序均能够从输入子系统获取心跳数据,进而感知网络状态的变化。还需要说明的一点是,本实施例的方法不会对当前操作系统的标准处理流程造成额外的影响,可扩展性较强。
图6为本公开一实施例提供的服务端设备的结构示意图。本实施例提供的服务端设备应用于通信系统,通信系统包括:客户端设备和服务端设备。通信系统的架构示例性地参照图1所示。
参照图6所示,本实施例提供的服务端设备600包括:用户态的接收进程601、虚拟心跳设备602以及输入子系统603。其中,用户态的接收进程601、虚拟心跳设备602以及输入子系统603的结构可参照图2所示。
具体地,接收进程601,用于从客户端设备接收所述心跳数据,并将所述心跳数据发送至所述虚拟心跳设备;
虚拟心跳设备602,用于将所述心跳数据发送至输入子系统603;
输入子系统603,用于向所述服务端设备的目标应用程序的进程发送所述心跳数据,以使所述目标应用程序的进程根据所述心跳数据执行相应处理。
在一些可能的设计中,虚拟心跳设备602,具体用于若所述心跳数据的数据格式满足所述服务端设备的输入子系统603的数据格式要求,则所述虚拟心跳设备602将所述心跳数据发送至所述输入子系统603。
在一些可能的设计中,虚拟心跳设备602,具体用于若所述心跳数据的数据格式不满足所述服务端设备的输入子系统603的数据格式要求,所述虚拟心跳设备602根据所述输入子系统603的数据格式要求对所述心跳数据进行格式转换,并将格式转换后的心跳数据发送至所述输入子系统603。
在一些可能的设计中,所述心跳数据是所述客户端设备的心跳输入设备根据预设的模拟键盘事件生成的。
在一些可能的设计中,所述模拟键盘事件包括:模拟按压事件和模拟弹起事件;
所述心跳数据包括:所述模拟按压事件对应的数据和所述模拟弹起事件对应的数据。
在一些可能的设计中,服务端设备还包括:创建模块604;所述创建模块604,用于在服务端设备与客户端设备建立连接后,根据心跳输入设备的设备类型创建虚拟心跳设备602。
在一些可能的设计中,输入子系统603,还用于若所述输入子系统603在预设时长内,未从所述虚拟心跳设备602获取心跳数据,则所述输入子系统603调用错误处理流程。
在一些可能的设计中,通信系统包括的客户端设备还包括:至少一个实体输入设备;所述服务端还包括:与所述至少一个实体输入设备一一对应的虚拟输入设备;所述至少一个实体输入设备分别对应的数据传输通道相互独立;且所述心跳数据对应的传输通道与所述至少一个实体输入设备分别对应的数据传输通道相互独立。
本实施例提供的服务端设备能够执行上述方法实施例中服务端设备执行的技术方案,其实现原理以及技术效果类似,可参照上述实施例中的描述,此处不再赘述。
图7为本公开一实施例提供的电子设备的结构示意图。参照图7所示,本实施例提供的电子设备700包括:存储器701和处理器702。
其中,存储器701可以是独立的物理单元,与处理器702可以通过总线703连接。存储器701、处理器702也可以集成在一起,通过硬件实现等。
存储器701用于存储程序指令,处理器702调用该程序指令,执行以上任一方法实施例中服务端设备的操作。
可选地,当上述实施例的方法中的部分或全部通过软件实现时,上述电子设备700也可以只包括处理器702。用于存储程序的存储器701位于电子设备700之外,处理器702通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器702可以是中央处理器(Central Processing Unit,CPU),网络处理器(Network Processor,NP)或者CPU和NP的组合。
处理器702还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,ASIC),可编程逻辑器件(ProgrammableLogic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD),现场可编程逻辑门阵列(Field-Programmable GateArray,FPGA),通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。
存储器701可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random-Access Memory,RAM);存储器也可以包括非易失性存储器(Non-volatileMemory),例如快闪存储器(Flash Memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-state Drive,SSD);存储器还可以包括上述种类的存储器的组合。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质中包括计算机程序指令,所述计算机程序指令在被电子设备的处理器执行时,使得所述电子设备执行以上任一方法实施例中服务端设备执行的技术方案。
本公开实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质中读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得所述电子设备执行以上任一方法实施例中服务端设备执行的技术方案。
本公开实施例还提供一种通信系统,该通信系统包括:客户端设备和服务端设备;服务端设备包括:用户态的接收进程、与客户端设备包括的心跳输入设备相对应的虚拟心跳设备以及输入子系统;心跳输入设备,用于根据预设的模拟事件生成心跳数据,并将心跳数据发送至服务端设备;服务端设备用于执行上述任一方法实施例中服务端设备的操作。
在一些可能的设计中,本实施例提供的通信系统包括的客户端设备还包括:至少一个实体输入设备;所述服务端还包括:与所述至少一个实体输入设备一一对应的虚拟输入设备;所述至少一个实体输入设备分别对应的数据传输通道相互独立;且所述心跳数据对应的传输通道与所述至少一个实体输入设备分别对应的数据传输通道相互独立。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种通信方法,其特征在于,应用于通信系统,所述通信系统包括:客户端设备和服务端设备;所述服务端设备包括:用户态的接收进程、与所述客户端设备的心跳输入设备相对应的虚拟心跳设备以及输入子系统;所述心跳输入设备用于根据预设的模拟事件生成心跳数据;所述方法包括:
所述接收进程从所述客户端设备接收所述心跳数据,并将所述心跳数据发送至所述虚拟心跳设备;
所述虚拟心跳设备将所述心跳数据发送至所述输入子系统;
所述输入子系统向所述服务端设备的目标应用程序的进程发送所述心跳数据,以使所述目标应用程序的进程根据所述心跳数据执行相应处理。
2.根据权利要求1所述的方法,其特征在于,所述虚拟心跳设备将所述心跳数据发送至所述输入子系统,包括:
若所述心跳数据的数据格式满足所述服务端设备的输入子系统的数据格式要求,则所述虚拟心跳设备将所述心跳数据发送至所述输入子系统。
3.根据权利要求1所述的方法,其特征在于,所述虚拟心跳设备将所述心跳数据发送至所述输入子系统,包括:
若所述心跳数据的数据格式不满足所述服务端设备的输入子系统的数据格式要求,所述虚拟心跳设备根据所述输入子系统的数据格式要求对所述心跳数据进行格式转换,并将格式转换后的心跳数据发送至所述输入子系统。
4.根据权利要求1或2所述的方法,其特征在于,所述心跳数据是所述客户端设备的心跳输入设备根据预设的模拟键盘事件生成的。
5.根据权利要求4所述的通信方法,其特征在于,所述模拟键盘事件包括:模拟按压事件和模拟弹起事件;
所述心跳数据包括:所述模拟按压事件对应的数据和所述模拟弹起事件对应的数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述服务端设备与所述客户端设备建立连接后,根据所述心跳输入设备的设备类型创建所述虚拟心跳设备。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述输入子系统在预设时长内,未从所述虚拟心跳设备获取心跳数据,则所述输入子系统调用错误处理流程。
8.根据权利要求1所述的方法,其特征在于,所述客户端还包括:至少一个实体输入设备;所述服务端还包括:与所述至少一个实体输入设备一一对应的虚拟输入设备;且所述至少一个实体输入设备分别对应的数据传输通道相互独立;所述方法还包括:
所述心跳数据对应的传输通道与所述至少一个实体输入设备分别对应的数据传输通道相互独立。
9.一种服务端设备,其特征在于,应用于通信系统,所述通信系统包括:客户端设备和服务端设备;所述服务端设备包括:用户态的接收进程、与所述客户端设备的心跳输入设备相对应的虚拟心跳设备以及输入子系统;所述心跳输入设备用于根据预设的模拟事件生成心跳数据;
所述接收进程,用于从客户端设备接收心跳数据;并将所述心跳数据发送至所述虚拟心跳设备;
所述虚拟心跳设备,用于从所述接收进程接收所述心跳数据;并将所述心跳数据发送至所述输入子系统;
所述输入子系统,用于向所述服务端设备的目标应用程序的进程发送所述心跳数据,以使所述目标应用程序的进程根据所述心跳数据执行相应处理。
10.一种电子设备,其特征在于,存储器、处理器以及计算机程序指令;
所述存储器,被配置为存储所述计算机程序指令;
所述处理器,被配置为执行所述计算机程序指令;当所述处理器执行所述计算机程序指令,以执行如权利要求1至8任一项所述的通信方法。
11.一种可读存储介质,其特征在于,包括:计算机程序指令;
电子设备的至少一个处理器执行所述计算机程序指令,以执行如权利要求1至8任一项所述的通信方法。
12.一种通信系统,其特征在于,包括:客户端设备和服务端设备;所述客户端设备包括:心跳输入设备;所述服务端设备包括:用户态的接收进程、与所述心跳输入设备相对应的虚拟心跳设备以及输入子系统;
所述心跳输入设备,用于根据预设的模拟事件生成心跳数据;并将所述心跳数据发送至所述服务端设备;
所述服务端设备用于执行如权利要求1至8任一项所述的通信方法。
13.根据权利要求12所述的系统,其特征在于,所述客户端还包括:至少一个实体输入设备;所述服务端还包括:与所述至少一个实体输入设备一一对应的虚拟输入设备;
所述至少一个实体输入设备分别对应的数据传输通道相互独立;
所述心跳数据对应的传输通道与所述至少一个实体输入设备分别对应的数据传输通道相互独立。
CN202110480480.6A 2021-04-30 2021-04-30 通信方法、装置及通信系统 Active CN113242284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110480480.6A CN113242284B (zh) 2021-04-30 2021-04-30 通信方法、装置及通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110480480.6A CN113242284B (zh) 2021-04-30 2021-04-30 通信方法、装置及通信系统

Publications (2)

Publication Number Publication Date
CN113242284A true CN113242284A (zh) 2021-08-10
CN113242284B CN113242284B (zh) 2022-11-22

Family

ID=77131742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110480480.6A Active CN113242284B (zh) 2021-04-30 2021-04-30 通信方法、装置及通信系统

Country Status (1)

Country Link
CN (1) CN113242284B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492861A (zh) * 2021-12-31 2022-05-13 北京航天测控技术有限公司 一种测试数据的采集和解析方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228125A (zh) * 2017-12-29 2018-06-29 广州酷狗计算机科技有限公司 智能设备的远程控制方法及系统
CN109347929A (zh) * 2018-09-27 2019-02-15 中国平安人寿保险股份有限公司 基于轻量级接口的心跳模拟探测方法、装置及存储介质
US20190104044A1 (en) * 2017-09-29 2019-04-04 Jigang Yang Heart beat monitoring for broadband access devices and enterprise devices
CN109819493A (zh) * 2019-03-06 2019-05-28 深圳前海达闼云端智能科技有限公司 控制方法和投屏方法及装置、存储介质、电子设备
CN109905259A (zh) * 2017-12-08 2019-06-18 中国电信股份有限公司 通信连接维持方法、系统和相关设备
US20190235939A1 (en) * 2018-01-26 2019-08-01 International Business Machines Corporation Heartbeat failure detection
CN111427706A (zh) * 2020-03-20 2020-07-17 中国联合网络通信集团有限公司 数据处理方法、多服务器系统、数据库、电子设备及存储介质
CN111615220A (zh) * 2020-04-30 2020-09-01 华为技术有限公司 一种基于邻居感知网络的设备连接方法及设备
CN111752518A (zh) * 2020-06-19 2020-10-09 海信视像科技股份有限公司 一种显示设备投屏方法及显示设备
CN111787588A (zh) * 2020-07-10 2020-10-16 Oppo广东移动通信有限公司 无线投屏方法、装置、相关设备及存储介质
CN112527222A (zh) * 2019-09-19 2021-03-19 华为技术有限公司 一种信息处理方法及电子设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190104044A1 (en) * 2017-09-29 2019-04-04 Jigang Yang Heart beat monitoring for broadband access devices and enterprise devices
CN109905259A (zh) * 2017-12-08 2019-06-18 中国电信股份有限公司 通信连接维持方法、系统和相关设备
CN108228125A (zh) * 2017-12-29 2018-06-29 广州酷狗计算机科技有限公司 智能设备的远程控制方法及系统
US20190235939A1 (en) * 2018-01-26 2019-08-01 International Business Machines Corporation Heartbeat failure detection
CN109347929A (zh) * 2018-09-27 2019-02-15 中国平安人寿保险股份有限公司 基于轻量级接口的心跳模拟探测方法、装置及存储介质
CN109819493A (zh) * 2019-03-06 2019-05-28 深圳前海达闼云端智能科技有限公司 控制方法和投屏方法及装置、存储介质、电子设备
CN112527222A (zh) * 2019-09-19 2021-03-19 华为技术有限公司 一种信息处理方法及电子设备
CN111427706A (zh) * 2020-03-20 2020-07-17 中国联合网络通信集团有限公司 数据处理方法、多服务器系统、数据库、电子设备及存储介质
CN111615220A (zh) * 2020-04-30 2020-09-01 华为技术有限公司 一种基于邻居感知网络的设备连接方法及设备
CN111752518A (zh) * 2020-06-19 2020-10-09 海信视像科技股份有限公司 一种显示设备投屏方法及显示设备
CN111787588A (zh) * 2020-07-10 2020-10-16 Oppo广东移动通信有限公司 无线投屏方法、装置、相关设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492861A (zh) * 2021-12-31 2022-05-13 北京航天测控技术有限公司 一种测试数据的采集和解析方法

Also Published As

Publication number Publication date
CN113242284B (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
JP6906540B2 (ja) ウェブページデータ処理方法、装置及びシステム
CN104618793A (zh) 一种信息处理方法及电子设备
CN112114761A (zh) 一种无线投屏控制方法、装置、终端设备及可读存储介质
CN110888615A (zh) 用于Android系统双屏异显的多输入设备交互方法、装置及介质
CN108710597B (zh) 一种利用gpio优化mcu通信的方法及系统
CN104023154A (zh) 调试系统
US10404568B2 (en) Agent manager for distributed transaction monitoring system
US20170010910A1 (en) Data transfer method, communications network, subscriber and vehicle
EP3122008A1 (en) Cloud desktop pushing method and system, pushing end and receiving end
CN104081374A (zh) 分级显示器服务器系统和方法
EP3343352A1 (en) Method, apparatus and device for instructing operations on terminal device
CN106325789B (zh) 一种信息处理的方法、终端及系统
EP3133490A1 (en) Virtual desktop processing method and device, and virtual desktop server
WO2015176352A1 (zh) 一种基于安卓系统的应用间信息交互方法及装置
CN113242284B (zh) 通信方法、装置及通信系统
CN110719311A (zh) 分布式协调服务方法、系统及计算机可读存储介质
CN108933947B (zh) 弹幕显示方法及装置
CN114138145B (zh) 应用虚拟化的文件拖拽方法、装置、设备及可读存储介质
TW201719384A (zh) 投影系統及控制投影系統的方法
US11176002B2 (en) Methods, apparatuses and systems for cloud-based disaster recovery
US10432490B2 (en) Monitoring single content page application transitions
CN111615819B (zh) 一种传输数据的方法和装置
CN106302670B (zh) 一种图片更新方法、通信终端及服务器
CN112511595B (zh) 一种消息推送方法及消息服务系统
CN113141530B (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