CN104821939B - 一种用于实现计算机与移动设备间异步通信的方法和装置 - Google Patents

一种用于实现计算机与移动设备间异步通信的方法和装置 Download PDF

Info

Publication number
CN104821939B
CN104821939B CN201510169424.5A CN201510169424A CN104821939B CN 104821939 B CN104821939 B CN 104821939B CN 201510169424 A CN201510169424 A CN 201510169424A CN 104821939 B CN104821939 B CN 104821939B
Authority
CN
China
Prior art keywords
mobile equipment
sent
information
network module
communication
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.)
Active
Application number
CN201510169424.5A
Other languages
English (en)
Other versions
CN104821939A (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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510169424.5A priority Critical patent/CN104821939B/zh
Publication of CN104821939A publication Critical patent/CN104821939A/zh
Application granted granted Critical
Publication of CN104821939B publication Critical patent/CN104821939B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/4061Push-to services, e.g. push-to-talk or push-to-video

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明的目的是提供一种用于实现计算机与移动设备间异步通信的方法和装置;调用移动设备内对应的程序,以启动所述程序的服务器;通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接;基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备。与现有技术相比,本发明提高了计算机与移动设备间通信的健壮性和稳定性,特别是当数据和请求数巨大时并不会导致整个移动设备端的崩溃,提升了用户的使用体验,并且,此种方式解除了业务逻辑和网络层的耦合。

Description

一种用于实现计算机与移动设备间异步通信的方法和装置
技术领域
本发明涉及计算机领域,尤其涉及一种用于实现计算机与移动设备间异步通信的方法和装置。
背景技术
现有的助手类产品以及带有助手功能的客户端,在和移动设备自身的APP(Application,应用程序)进行通信时,依赖的都是官方的调试桥进行数据交换。例如,在和安卓手机自身的APP进行通信时,依赖谷歌官方的ADB(Android Debug Bridge,安卓调试桥)和安卓手机的ADBD进行数据交换,不论上层协议是HTTP(HTTP-Hypertext transferprotocol,超文本传送协议)还是其他协议进行。当每次发起数据请求的时候相当于对移动设备端做了一次短连接,当计算机客户端对移动设备端连接请求过多时(例如在计算机端对移动设备端架设的FTP(File Transfer Protocol,文件传输协议)进行访问),那么直接结果会导致移动设备端整个ADBD异常,从而导致整个计算机和移动设备间的连接以及数据访问出现问题,并且,没有办法实现在移动设备端搭建的服务器对计算机端进行消息推送。
因此,如何稳定、高效地实现计算机与移动设备间的通信,成为本领域技术人员亟需解决的问题之一。
发明内容
本发明的目的是提供一种用于实现计算机与移动设备间异步通信的方法和装置。
根据本发明的一个方面,提供了一种用于实现计算机与移动设备间异步通信的方法,其中,该方法包括以下步骤:
调用移动设备内对应的程序,以启动所述程序的服务器;
通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接;
基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备。
根据本发明的另一个方面,还提供了一种用于实现计算机与移动设备间异步通信的装置,其中,该装置包括:
用于调用移动设备内对应的程序,以启动所述程序的服务器的装置;
用于通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接的装置;
用于基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备的装置。
与现有技术相比,本发明提高了计算机与移动设备间通信的健壮性和稳定性,特别是当数据和请求数巨大时并不会导致整个移动设备端的崩溃,提升了用户的使用体验,并且,此种方式解除了业务逻辑和网络层的耦合。
进一步地,本发明中任意线程均可调用网络模块,而不阻塞原有线程的操作,即,不会让原有的线程等待结果的返回才往下执行,更进一步提高了计算机与移动设备间通信的效率与稳定性,提升了用户的使用体验。
更进一步地,移动设备端例如删除应用、安装应用、更新应用等消息能够实时地推送到计算机端,使得计算机端能够实时同步显示移动设备端的改变,进一步提升了用户的使用体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一个方面的用于实现计算机与移动设备间异步通信的装置的结构示意图;
图2为本发明另一个方面的用于实现计算机与移动设备间异步通信的方法的流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1为本发明一个方面的用于实现计算机与移动设备间异步通信的装置的结构示意图。
该用于实现计算机与移动设备间异步通信的装置(以下简称“异步通信装置1”)包括用于调用移动设备内对应的程序,以启动所述程序的服务器的装置(以下简称“程序调用装置101”)、用于通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接的装置(以下简称“通道创建装置102”)、以及用于基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备的装置(以下简称“异步发送装置103”)。
其中,程序调用装置101调用移动设备内对应的程序,以启动所述程序的服务器。
具体地,程序调用装置101通过与对应的移动设备的交互,例如通过一次或多次调用debug工具或其他约定的方式,调用该移动设备内对应的程序,以启动所述程序的服务器。
例如,程序调用装置101通过debug工具,如ADB(Android Debug Bridge,安卓调试桥),调用了对应的移动设备内的程序,并启动了该程序内自建的服务器,如,该程序内自建的mina服务器。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的调用移动设备内对应的程序以启动该程序的服务器的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在此,所述移动设备包括但不限于移动电话、智能手机、平板电脑等。
需要说明的是,所述移动设备仅为举例,其他现有的或今后可能出现的移动设备如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
在此,所述移动设备内对应的程序与所述异步通信装置1相对应,用于与所述异步通信装置1结合,一起管理所述移动设备,例如各类手机助手。
在此,所述程序的服务器是一个网络应用程序框架,用于帮助开发者简单地开发高性能和高可扩展性的网络应用程序。该服务器例如mina服务器、Netty服务器等。在此,mina服务器提供了一个通过Java NIO在不同的传输,例如TCP/IP和UDP/IP,上抽象的事件驱动的异步API。在此,Netty服务器提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
需要说明的是,所述移动设备内对应的程序及该程序的服务器仅为举例,其他现有的或今后可能出现的移动设备内对应的程序及该程序的服务器如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
通道创建装置102通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接。
具体地,在程序调用装置101调用移动设备内对应的程序,以启动该程序的服务器之后,通道创建装置102建立该异步通信装置1所对应的计算机与该移动设备之间的局域网,从而建立该计算机与该移动设备之间的长连接,如TCP(Transmission ControlProtocol,传输控制协议)长连接,并且,该通道创建装置102通过该移动设备内对应的程序的服务器,创建与该移动设备间的通信通道,如TCP Channel(TCP通道)。
例如,当移动设备通过USB数据线、WiFi等,连接到计算机时,移动设备使得计算机能够识别通过USB数据线或WiFi连接到计算机的该移动设备,并在计算机与移动设备之间建立一个仅包含该计算机与移动设备的局域网,该局域网建立之后,移动设备告知计算机其IP地址,则计算机中的异步通信装置1上的通道创建装置102基于该IP地址,向该移动设备发送TCP长连接建立请求。移动设备中的服务器,如前述mina服务器,在接收到来自计算机的长连接建立请求后,按照TCP协议与计算机之间建立TCP长连接。并且,该通道创建装置102,如该异步通信装置1中的调度器(dispatcher),创建与该移动设备间的通信通道,而该移动设备内对应的程序的服务器也相应地创建一个socket连接通道,两个通道相对接,即形成该计算机与该移动设备间的通信通道,如TCP Channel。
在此,所述通信通道为计算机与移动设备间建立的一条通信的通道,用于计算机与移动设备进行数据的互传。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的创建与移动设备间的通信通道并与之保持长连接的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
异步发送装置103基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备。
具体地,异步发送装置103基于该通道创建装置102所保持的与该移动设备间的长连接,通过其创建的通信通道,如TCP通道,将待发送信息异步发送至该移动设备。
在此,所有的传递基于事件驱动,例如,异步通信装置1处于等待的状态,当移动设备具有对应的消息需要传递至该计算机时,该异步通信装置1进行读事件,以对接收到的消息进行解析;当计算机具有对于的消息需要传递至该移动设备时,该异步通信装置1进行写事件,以将该消息异步发送至该移动设备。因此,可以达到不阻塞界面操作的目的,并且,将网络层的实现和业务层的逻辑完全分开,唯一的交互就是接口和回调。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的异步发送信息至移动设备的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在此,异步通信装置1调用移动设备内对应的程序,以启动所述程序的服务器;通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接;基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备,提高了计算机与移动设备间通信的健壮性和稳定性,特别是当数据和请求数巨大时并不会导致整个移动设备端的崩溃,提升了用户的使用体验,并且,此种方式解除了业务逻辑和网络层的耦合。
优选地,该异步通信装置1还包括用于初始化网络模块的装置(以下简称“初始化装置104”,图未示)以及用于在所述网络模块内分别创建发送者与接收者的装置(以下简称“模块创建装置105”,图未示),其中,当所述网络模块被调用时,所述发送者将通信事件发送至所述接收者,所述接收者对所述通信事件进行解析,以确定所述待发送信息。
具体地,初始化装置104初始化网络模块,例如,该初始化装置104初始化网络所需环境。随后,模块创建装置105在所述网络模块内分别创建发送者(Sender)与接收者(Receiver)。当所述网络模块被调用时,所述发送者将与该调用相对应的通信事件发送至所述接收者,所述接收者对所述通信事件进行解析,以确定待发送至该移动设备的待发送信息。随后,该发送者将该待发送信息发送至该网络模块中的调度器,或者发送至前述异步发送装置103,以使其基于与移动设备间的长连接,通过该通信通道,如TCP通道,将该待发送信息发送至该移动设备。
更优选地,所述网络模块可由任意线程所调用。
在此,任意线程均可调用该网络模块,而不阻塞原有线程的操作,即,不会让原有的线程等待结果的返回才往下执行,更进一步提高了计算机与移动设备间通信的效率与稳定性,提升了用户的使用体验。
优选地,该异步通信装置1还包括用于当界面有请求时,将与所述请求对应的通信事件发送至所述网络模块的调度器的装置(以下简称“事件发送装置106”,图未示),其中,所述调度器获取所述接收者所确定的待发送信息,基于所述长连接,通过所述通信通道,异步发送至所述移动设备。
具体地,当界面有请求时,事件发送装置106将与该请求对应的通信事件发送至该网络模块的调度器(dispatcher)。例如,调用者A需要将待发送消息B发送至对应的移动设备,因此,其在界面上提交了请求,事件发送装置106根据该请求,确定了与之对应的通信事件,并将该通信事件发送至了该网络模块的调度器。该网络模块中的接收者对该通信事件进行解析,确定待发送至移动设备的待发送信息,并将该待发送信息发送至该调度器,该调度器获取该待发送信息;进而,该调度器基于通道创建装置102所保持的与该移动设备间的长连接,通过该通信通道,将该待发送信息异步发送至该移动设备。
优选地,所述调度器即为该通道创建装置102,即,该调度器创建与所述移动设备间的通信通道,并与所述移动设备保持长连接。该调度器获取该接收者所解析确定的待发送至移动设备的待发送信息,通过其与移动设备间所创建的通信通道,如TCP通道,将该待发送信息异步发送至该移动设备。
优选地,其中,该异步通信装置1还包括用于为所述待发送信息分配对应的ID号的装置(以下简称“ID分配装置107”,图未示)、用于接收所述移动设备基于接收到的所述待发送信息所返回的反馈信息的装置,其中,所述反馈信息包括所述对应的ID号(以下简称“反馈接收装置108”,图未示)、以及用于根据所述反馈信息的ID号,确定与之对应的注册回调的调用者的装置(以下简称“调用确定装置109”,图未示)。
具体地,ID分配装置107为待发送至移动设备的待发送信息分配对应的ID号,其中,该ID号对该待发送信息进行唯一标识,其与注册回调的调用者之间也具有映射关系。异步发送装置103基于所述长连接,通过所述通信通道,将该具有对应ID号的待发送信息异步发送至所述移动设备。
移动设备接收到该携带有ID号的信息,并将该信息在过滤链进行逐层过滤解包,进而,在业务层将所有信息处理完,并进行反向传递,最后,形成一个同样携带有该ID号的反馈信息,并返回至该异步通信装置1。该异步通信装置1中的反馈接收装置108接收该移动设备基于接收到的该待发送信息所返回的反馈信息,其中,该反馈信息包括对应的ID号。
随后,调用确定装置109根据改反馈信息及其携带的ID号,通过匹配查询,确定与该ID号对应的注册回调的调用者,进而,将该反馈信息反馈至该调用者。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的确定注册回调的调用者的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,该异步通信装置1还包括用于基于所述长连接,通过所述通信信道,接收所述移动设备所推送的应用更新信息的装置(以下简称“更新接收装置110”,图未示)、以及用于将所述应用更新信息分发给对应的调用者,以与所述移动设备同步的装置(以下简称“更新分发装置111”,图未示)。
具体地,当移动设备中的应用程序具有对应的应用更新信息之时,采用约定的传输协议,如TCP协议,其向对应的计算机进行推送,例如,该移动设备与该计算机保持有前述的长连接,该移动设备上具有应用更新信息的应用程序基于该长连接,通过前述通信信道,向该计算机推送该应用更新信息;该更新接收装置110基于该长连接,通过该通信信道,接收该移动设备所推送的应用更新信息。在此,该应用更新信息例如携带有对应的CMD命令号。更新分发装置111根据该CMD命令号,进行查找,确定注册过需要该应用更新信息的调用者,随后,该更新分发装置111将该应用更新信息分发至所确定的调用者,从而使得该计算机与该移动设备同步。
在此,移动设备端例如删除应用、安装应用、更新应用等消息能够实时地推送到计算机端,使得计算机端能够实时同步显示移动设备端的改变,进一步提升了用户的使用体验。
图2为本发明另一个方面的用于实现计算机与移动设备间异步通信的方法的流程示意图。
在步骤S201中,异步通信装置1调用移动设备内对应的程序,以启动所述程序的服务器。
具体地,在步骤S201中,异步通信装置1通过与对应的移动设备的交互,例如通过一次或多次调用debug工具或其他约定的方式,调用该移动设备内对应的程序,以启动所述程序的服务器。
例如,在步骤S201中,异步通信装置1通过debug工具,如ADB(Android DebugBridge,安卓调试桥),调用了对应的移动设备内的程序,并启动了该程序内自建的服务器,如,该程序内自建的mina服务器。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的调用移动设备内对应的程序以启动该程序的服务器的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在此,所述移动设备包括但不限于移动电话、智能手机、平板电脑等。
需要说明的是,所述移动设备仅为举例,其他现有的或今后可能出现的移动设备如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
在此,所述移动设备内对应的程序与所述异步通信装置1相对应,用于与所述异步通信装置1结合,一起管理所述移动设备,例如各类手机助手。
在此,所述程序的服务器是一个网络应用程序框架,用于帮助开发者简单地开发高性能和高可扩展性的网络应用程序。该服务器例如mina服务器、Netty服务器等。在此,mina服务器提供了一个通过Java NIO在不同的传输,例如TCP/IP和UDP/IP,上抽象的事件驱动的异步API。在此,Netty服务器提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
需要说明的是,所述移动设备内对应的程序及该程序的服务器仅为举例,其他现有的或今后可能出现的移动设备内对应的程序及该程序的服务器如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
在步骤S202中,异步通信装置1通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接。
具体地,在异步通信装置1在步骤S201中调用移动设备内对应的程序,以启动该程序的服务器之后,在步骤S202中,异步通信装置1建立该异步通信装置1所对应的计算机与该移动设备之间的局域网,从而建立该计算机与该移动设备之间的长连接,如TCP(Transmission Control Protocol,传输控制协议)长连接,并且,在步骤S202中,异步通信装置1通过该移动设备内对应的程序的服务器,创建与该移动设备间的通信通道,如TCPChannel(TCP通道)。
例如,当移动设备通过USB数据线、WiFi等,连接到计算机时,移动设备使得计算机能够识别通过USB数据线或WiFi连接到计算机的该移动设备,并在计算机与移动设备之间建立一个仅包含该计算机与移动设备的局域网,该局域网建立之后,移动设备告知计算机其IP地址,则在步骤S202中,异步通信装置1基于该IP地址,向该移动设备发送TCP长连接建立请求。移动设备中的服务器,如前述mina服务器,在接收到来自计算机的长连接建立请求后,按照TCP协议与计算机之间建立TCP长连接。并且,在步骤S202中,异步通信装置1,或如其上的调度器(dispatcher),创建与该移动设备间的通信通道,而该移动设备内对应的程序的服务器也相应地创建一个socket连接通道,两个通道相对接,即形成该计算机与该移动设备间的通信通道,如TCP Channel。
在此,所述通信通道为计算机与移动设备间建立的一条通信的通道,用于计算机与移动设备进行数据的互传。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的创建与移动设备间的通信通道并与之保持长连接的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S203中,异步通信装置1基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备。
具体地,在步骤S203中,异步通信装置1基于在步骤S202中所保持的与该移动设备间的长连接,通过其创建的通信通道,如TCP通道,将待发送信息异步发送至该移动设备。
在此,所有的传递基于事件驱动,例如,异步通信装置1处于等待的状态,当移动设备具有对应的消息需要传递至该计算机时,该异步通信装置1进行读事件,以对接收到的消息进行解析;当计算机具有对于的消息需要传递至该移动设备时,该异步通信装置1进行写事件,以将该消息异步发送至该移动设备。因此,可以达到不阻塞界面操作的目的,并且,将网络层的实现和业务层的逻辑完全分开,唯一的交互就是接口和回调。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的异步发送信息至移动设备的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在此,异步通信装置1调用移动设备内对应的程序,以启动所述程序的服务器;通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接;基于所述长连接,通过所述通信通道,将待发送信息异步发送至所述移动设备,提高了计算机与移动设备间通信的健壮性和稳定性,特别是当数据和请求数巨大时并不会导致整个移动设备端的崩溃,提升了用户的使用体验,并且,此种方式解除了业务逻辑和网络层的耦合。
优选地,该方法还包括初始化网络模块的步骤(以下简称“步骤S204”,图未示)以及在所述网络模块内分别创建发送者与接收者的步骤(以下简称“步骤S205”,图未示),其中,当所述网络模块被调用时,所述发送者将通信事件发送至所述接收者,所述接收者对所述通信事件进行解析,以确定所述待发送信息。
具体地,在步骤S204中,异步通信装置1初始化网络模块,例如,在步骤S204中,异步通信装置1初始化网络所需环境。随后,在步骤S205中,异步通信装置1在所述网络模块内分别创建发送者(Sender)与接收者(Receiver)。当所述网络模块被调用时,所述发送者将与该调用相对应的通信事件发送至所述接收者,所述接收者对所述通信事件进行解析,以确定待发送至该移动设备的待发送信息。随后,该发送者将该待发送信息发送至该异步通信装置1,或更进一步地,发送至该网络模块中的调度器,以使其基于与移动设备间的长连接,通过该通信通道,如TCP通道,将该待发送信息发送至该移动设备。
更优选地,所述网络模块可由任意线程所调用。
在此,任意线程均可调用该网络模块,而不阻塞原有线程的操作,即,不会让原有的线程等待结果的返回才往下执行,更进一步提高了计算机与移动设备间通信的效率与稳定性,提升了用户的使用体验。
优选地,该方法还包括当界面有请求时,将与所述请求对应的通信事件发送至所述网络模块的调度器的步骤(以下简称“步骤S206”,图未示),其中,所述调度器获取所述接收者所确定的待发送信息,基于所述长连接,通过所述通信通道,异步发送至所述移动设备。
具体地,当界面有请求时,在步骤S206中,异步通信装置1将与该请求对应的通信事件发送至该网络模块的调度器(dispatcher)。例如,调用者A需要将待发送消息B发送至对应的移动设备,因此,其在界面上提交了请求,在步骤S206中,异步通信装置1根据该请求,确定了与之对应的通信事件,并将该通信事件发送至了该网络模块的调度器。该网络模块中的接收者对该通信事件进行解析,确定待发送至移动设备的待发送信息,并将该待发送信息发送至该调度器,该调度器获取该待发送信息;进而,该调度器基于在步骤S202中,异步通信装置1所保持的与该移动设备间的长连接,通过该通信通道,将该待发送信息异步发送至该移动设备。
优选地,所述调度器在步骤S202中即创建与所述移动设备间的通信通道,并与所述移动设备保持长连接。该调度器获取该接收者所解析确定的待发送至移动设备的待发送信息,通过其与移动设备间所创建的通信通道,如TCP通道,将该待发送信息异步发送至该移动设备。
优选地,其中,该异步通信装置1还包括为所述待发送信息分配对应的ID号的步骤(以下简称“步骤S207”,图未示)、接收所述移动设备基于接收到的所述待发送信息所返回的反馈信息的步骤,其中,所述反馈信息包括所述对应的ID号(以下简称“步骤S208”,图未示)、以及根据所述反馈信息的ID号,确定与之对应的注册回调的调用者的步骤(以下简称“步骤S209”,图未示)。
具体地,在步骤S207中,异步通信装置1为待发送至移动设备的待发送信息分配对应的ID号,其中,该ID号对该待发送信息进行唯一标识,其与注册回调的调用者之间也具有映射关系。在步骤S203中,异步通信装置1基于所述长连接,通过所述通信通道,将该具有对应ID号的待发送信息异步发送至所述移动设备。
移动设备接收到该携带有ID号的信息,并将该信息在过滤链进行逐层过滤解包,进而,在业务层将所有信息处理完,并进行反向传递,最后,形成一个同样携带有该ID号的反馈信息,并返回至该异步通信装置1。在步骤S208中,异步通信装置1接收该移动设备基于接收到的该待发送信息所返回的反馈信息,其中,该反馈信息包括对应的ID号。
随后,在步骤S209中,异步通信装置1根据改反馈信息及其携带的ID号,通过匹配查询,确定与该ID号对应的注册回调的调用者,进而,将该反馈信息反馈至该调用者。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的确定注册回调的调用者的实现方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
优选地,该方法还包括基于所述长连接,通过所述通信信道,接收所述移动设备所推送的应用更新信息的步骤(以下简称“步骤S210”,图未示)、以及将所述应用更新信息分发给对应的调用者,以与所述移动设备同步的步骤(以下简称“步骤S211”,图未示)。
具体地,当移动设备中的应用程序具有对应的应用更新信息之时,采用约定的传输协议,如TCP协议,其向对应的计算机进行推送,例如,该移动设备与该计算机保持有前述的长连接,该移动设备上具有应用更新信息的应用程序基于该长连接,通过前述通信信道,向该计算机推送该应用更新信息;在步骤S210中,异步通信装置1基于该长连接,通过该通信信道,接收该移动设备所推送的应用更新信息。在此,该应用更新信息例如携带有对应的CMD命令号。在步骤S211中,异步通信装置1根据该CMD命令号,进行查找,确定注册过需要该应用更新信息的调用者,随后,在步骤S211中,异步通信装置1将该应用更新信息分发至所确定的调用者,从而使得该计算机与该移动设备同步。
在此,移动设备端例如删除应用、安装应用、更新应用等消息能够实时地推送到计算机端,使得计算机端能够实时同步显示移动设备端的改变,进一步提升了用户的使用体验。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (10)

1.一种用于实现计算机与移动设备间异步通信的方法,其中,该方法包括以下步骤:
调用移动设备内对应的程序,以启动所述程序的服务器;
初始化所述计算机内的网络模块;
在所述网络模块内分别创建发送者与接收者,其中,当所述网络模块被调用时,所述发送者将通信事件发送至所述接收者,所述接收者对所述通信事件进行解析,以确定待发送信息;
通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接;
基于所述长连接,通过所述通信通道,将所述待发送信息异步发送至所述移动设备。
2.根据权利要求1所述的方法,其中,基于所述长连接,通过所述通信通道,将所述待发送信息异步发送至所述移动设备的步骤包括:
当界面有请求时,将与所述请求对应的通信事件发送至所述网络模块的调度器,其中,所述调度器获取所述接收者所确定的待发送信息,基于所述长连接,通过所述通信通道,异步发送至所述移动设备。
3.根据权利要求1或2所述的方法,其中,所述网络模块可由任意线程所调用。
4.根据权利要求1所述的方法,其中,该方法还包括:
为所述待发送信息分配对应的ID号;
接收所述移动设备基于接收到的所述待发送信息所返回的反馈信息,其中,所述反馈信息包括所述对应的ID号;
根据所述反馈信息的ID号,确定与之对应的注册回调的调用所述网络模块的调用者。
5.根据权利要求1所述的方法,其中,该方法还包括:
基于所述长连接,通过所述通信信道,接收所述移动设备所推送的应用更新信息;
将所述应用更新信息分发给对应的调用所述网络模块的调用者,以与所述移动设备同步。
6.一种用于实现计算机与移动设备间异步通信的装置,其中,该装置包括:
用于调用移动设备内对应的程序,以启动所述程序的服务器的装置;
用于初始化所述计算机内的网络模块的装置;
用于在所述网络模块内分别创建发送者与接收者的装置,其中,当所述网络模块被调用时,所述发送者将通信事件发送至所述接收者,所述接收者对所述通信事件进行解析,以确定待发送信息;
用于通过所述服务器,创建与所述移动设备间的通信通道,并与所述移动设备保持长连接的装置;
用于基于所述长连接,通过所述通信通道,将所述待发送信息异步发送至所述移动设备的装置。
7.根据权利要求6所述的装置,其中,该装置还包括:
用于当界面有请求时,将与所述请求对应的通信事件发送至所述网络模块的调度器的装置,其中,所述调度器获取所述接收者所确定的待发送信息,基于所述长连接,通过所述通信通道,异步发送至所述移动设备。
8.根据权利要求6或7所述的装置,其中,所述网络模块可由任意线程所调用。
9.根据权利要求6所述的装置,其中,该装置还包括:
用于为所述待发送信息分配对应的ID号的装置;
用于接收所述移动设备基于接收到的所述待发送信息所返回的反馈信息的装置,其中,所述反馈信息包括所述对应的ID号;
用于根据所述反馈信息的ID号,确定与之对应的注册回调的调用所述网络模块的调用者的装置。
10.根据权利要求6所述的装置,其中,该装置还包括:
用于基于所述长连接,通过所述通信信道,接收所述移动设备所推送的应用更新信息的装置;
用于将所述应用更新信息分发给对应的调用所述网络模块的调用者,以与所述移动设备同步的装置。
CN201510169424.5A 2015-04-10 2015-04-10 一种用于实现计算机与移动设备间异步通信的方法和装置 Active CN104821939B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510169424.5A CN104821939B (zh) 2015-04-10 2015-04-10 一种用于实现计算机与移动设备间异步通信的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510169424.5A CN104821939B (zh) 2015-04-10 2015-04-10 一种用于实现计算机与移动设备间异步通信的方法和装置

Publications (2)

Publication Number Publication Date
CN104821939A CN104821939A (zh) 2015-08-05
CN104821939B true CN104821939B (zh) 2018-06-05

Family

ID=53732102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510169424.5A Active CN104821939B (zh) 2015-04-10 2015-04-10 一种用于实现计算机与移动设备间异步通信的方法和装置

Country Status (1)

Country Link
CN (1) CN104821939B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868109B (zh) * 2016-03-28 2019-03-05 北京奇虎科技有限公司 一种改进的移动端应用测试方法和***
CN107483575A (zh) * 2017-08-10 2017-12-15 安徽声讯信息技术有限公司 一种基于ADB与socket语音文字同步信息控制***及其方法
CN108984614B (zh) * 2018-06-12 2022-01-25 成都三零凯天通信实业有限公司 一种基于大数据环境下的视图像快速识别方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102123158A (zh) * 2011-04-11 2011-07-13 深圳市同洲软件有限公司 一种实现网络数据处理的方法和***
CN103731802A (zh) * 2012-10-12 2014-04-16 上海宝信软件股份有限公司 基于Android移动终端的设备管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102123158A (zh) * 2011-04-11 2011-07-13 深圳市同洲软件有限公司 一种实现网络数据处理的方法和***
CN103731802A (zh) * 2012-10-12 2014-04-16 上海宝信软件股份有限公司 基于Android移动终端的设备管理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《Apache MINA 2.0 用户指南》第二章:基础知识;Defonds;《CSDN.NET/博客频道/Defonds的专栏》;20140108;第1-19页 *
Galaxy S4如何连接91助手?;samsung;《www.samsung.com》;20131211;第1,5-6页 *
基于Apache Mina实现的TCP长连接和短连接实例;peterwanghao;《CSDN.NET/博客频道/王浩的专栏》;20111024;第2页2.2处理流程,***构架图,第3-5页 *

Also Published As

Publication number Publication date
CN104821939A (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
CN103942225A (zh) 一种混合型应用客户端的资源调用方法、客户端及***
US10498854B2 (en) Method and controller for clustering applications in a software-defined network
CN108777698A (zh) 网页存储方法、***及区块链节点设备
CN108196787A (zh) 集群存储***的配额管理方法以及集群存储***
CN104821939B (zh) 一种用于实现计算机与移动设备间异步通信的方法和装置
CN104601534A (zh) Cdn***图像处理的方法及***
CN109873839A (zh) 数据访问的方法、服务器与分布式***
US20240146650A1 (en) Creating endpoints
CN105119944B (zh) 一种应用的启动方法和相关装置
Lee A framework for seamless execution of mobile applications in the cloud
CN110286981A (zh) 虚拟云桌面服务器的使用状态的显示方法及显示***
CN105897865A (zh) 一种协议无关的网络文件服务管理***和方法
CN109327555A (zh) 分布式发号***、方法及装置
CN115361382B (zh) 基于数据群组的数据处理方法、装置、设备和存储介质
CN112073488A (zh) 处理请求的方法及装置
CN104570967A (zh) 基于Android***的远程控制方法及***
CN115378937A (zh) 任务的分布式并发方法、装置、设备和可读存储介质
CN106559454B (zh) 资源访问方法、装置及***
CN103440134A (zh) 基于webkit内核的存储资源服务的本地扩展方法
CN113342461A (zh) 一种设备挂载方法、装置、计算机设备及可读存储介质
CN102843424B (zh) 一种异构分布式云计算***及方法
CN114745418B (zh) 一种任务访问方法、装置、设备及存储介质
CN110941735B (zh) 基于有向图的路径搜索方法及***、介质和计算机***
CN115037572B (zh) 一种应用请求的识别方法和装置
CN106209464A (zh) 终端的发现方法、终端及其管理***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant