CN112383617A - 进行长连接的方法、装置、终端设备以及介质 - Google Patents

进行长连接的方法、装置、终端设备以及介质 Download PDF

Info

Publication number
CN112383617A
CN112383617A CN202011260317.0A CN202011260317A CN112383617A CN 112383617 A CN112383617 A CN 112383617A CN 202011260317 A CN202011260317 A CN 202011260317A CN 112383617 A CN112383617 A CN 112383617A
Authority
CN
China
Prior art keywords
long connection
service
protocol
services
long
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
CN202011260317.0A
Other languages
English (en)
Other versions
CN112383617B (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 CN202011260317.0A priority Critical patent/CN112383617B/zh
Publication of CN112383617A publication Critical patent/CN112383617A/zh
Application granted granted Critical
Publication of CN112383617B publication Critical patent/CN112383617B/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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • 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/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及进行长连接的方法、装置、终端设备以及介质,涉及数据通信领域,具体涉及用于应用程序的网络连接方法。该方法包括:经由业务共享的配置接口获取应用程序中至少两项业务的长连接配置信息;基于至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议;基于所确定的至少一个长连接协议建立相应的至少一个长连接;经由所建立的至少一个长连接与用于至少两项业务的业务服务端进行通信。利用本公开提供的实施例能够为应用程序中的不同业务提供统一的长连接。

Description

进行长连接的方法、装置、终端设备以及介质
技术领域
本公开的实施例涉及数据通信领域,具体涉及用于应用程序的网络连接方法,具体涉及进行长连接的方法、装置、终端设备以及介质。
背景技术
通过在客户端和服务端之间建立长连接有助于客户端和服务端之间的频繁操作以及通讯。通过长连接可以实现客户端和服务端之间的实时通讯,因此目前在电子设备和服务器之间的数据通信过程中,长连接具有广泛的应用场景。
发明内容
根据本公开示例性实施例的一个方面,提供了一种用于Flutter应用程序的进行长连接的方法,包括:经由业务共享的配置接口获取应用程序中至少两项业务的长连接配置信息;基于至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议;基于所确定的至少一个长连接协议建立相应的至少一个长连接;经由所建立的至少一个长连接与用于至少两项业务的业务服务端进行通信。
根据本公开示例性实施例的另一个方面,提供了一种用于Flutter应用程序的进行长连接的装置,包括:配置单元,配置成经由业务共享的配置接口获取应用程序中至少两项业务的长连接配置信息;协议确定单元,配置成基于至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议;长连接建立单元,配置成基于所确定的至少一个长连接协议建立相应的至少一个长连接;通信单元,配置成经由所建立的至少一个长连接与至少两项业务的业务服务端进行通信。
根据本公开示例性实施例的另一个方面,提供了一种终端设备。该电子设备包括:处理器以及存储程序的存储器。程序包括指令,指令在由处理器执行时使处理器执行根据本公开一些示例性实施例的方法。
根据本公开示例性实施例的另一个方面,提供了一种存储程序的计算机可读存储介质。程序包括指令,指令在由电子设备的处理器执行时,致使处理器执行根据本公开一些示例性实施例的方法。
借助于本公开示例性实施例的进行长连接的方法、装置、终端设备以及介质,能够为具有跨平台性质的Flutter应用提供整合应用内不同业务的长连接资源的方法,能够节省应用程序使用过程中需要的网络资源,减少建立连接需要花费的时长,并提高连接的稳定性。通过提供统一的长连接方法,能够降低应用程序开发过程中网络方案的整合难度。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的元素:
图1示出了根据本公开的实施例的进行长连接的方法的示例性的流程图;
图2示出了根据本公开的实施例的用于与业务服务端进行通信的方法的示例性的过程;
图3A-3B示出了利用本公开的实施例的应用程序进行长连接的示例性的场景图;
图4A示出了根据本公开的实施例的应用程序的长连接模块的示意性的框图;
图4B示出了根据本公开的实施例协议模块的示意图;
图5示出了根据本公开的实施例的进行长连接的装置的示意性框图;以及
图6示出了根据本公开示例性实施例的示例计算设备的示意性框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在使用安装在终端设备上的应用程序时,可以通过应用程序和服务端之间的网络连接实现终端和服务器之间的数据通信。在例如实时通讯的应用场景中,需要在应用程序和服务端之间建立长连接以实现实时的数据通信。开发人员在应用程序开发的过程中可以在应用程序中集成相应的网络模块以使得应用程序在使用过程中能够与服务端建立网络连接。
目前常用的终端设备上可以安装有不同的操作***,例如安卓(Android)***或iOS***。在一些情况下,用于不同的操作***的应用程序是利用不同的开发工具开发的,因此,需要分别为不同操作***下运行的应用程序集成不同的网络库。
此外,同一个应用程序内部可能具有至少两个不同的业务场景。例如,即时通信应用程序内可能具有即时通信业务、云存储业务、支付业务等不同业务场景。可以理解的是,不同的业务场景可以与不同的业务服务端进行通信以实现业务功能。在这种情况下,由于不同的业务场景可能需要不同类型的长连接服务,因此,需要在应用程序中集成多个支持不同网络协议的网络库,这使得应用程序的安装包体积较大并且具有复杂的网络接口。此外,由于长连接需要长时间地占据网络资源,为不同的业务场景分别建立长连接会造成网络资源的浪费。
在一些实施例中,应用程序可以是Flutter应用程序。Flutter是谷歌公司提供的移动用户界面UI框架,其是一种跨平台的机制,能够为在iOS***和安卓***内运行的应用程序提供跨平台的业务功能的开发。目前针对基于Flutter框架开发的Flutter应用程序,尚不存在能够支持多种不同的网络协议进行配置并建立长连接的网络库。此外,也尚不存在能够为Flutter应用程序提供Quic协议连接和GRCP协议连接的网络库。
为了整合应用程序内的不同业务的网络连接,本公开提供了一种新的进行长连接的方法。以下结合附图对本公开的实施例进行进一步描述。
图1示出了根据本公开的实施例的进行长连接的方法的示例性的流程图。
如图1所示,在步骤S102中,可以经由业务共享的配置接口获取应用程序中至少两项业务的长连接配置信息。
在一些实施例中,应用程序中的至少两项业务可以经由业务共享的配置接口提供业务的长连接配置信息。这样,应用程序中的长连接模块能够基于至少两项业务的长连接配置信息建立应用程序和长连接服务端之间的长连接。
在一些实施例中,对于应用程序中的至少两项业务中的每项业务,长连接配置信息可以包括该项业务支持的网络协议。也就是说,该项业务能够通过基于预先定义的至少一种网络协议建立长连接。在一些实现方式中,业务支持的网络协议可以选自由以下各项构成的组的至少一个:传输控制协议(TCP)、安全传输层协议(TLS)、超文本传输协议(HTTP)、Quic协议和GRPC协议。其中HTTP协议可以包括HTTP1协议和HTTP2协议中的至少一种。由此,本公开提供的长连接方法能够对支持不同网络协议的多项业务的长连接进行整合。
在一些实施例中,业务的长连接配置信息还可以包括建立网络连接所需的互联网协议(IP)地址、端口等配置信息。
在一些实施例中,应用程序中的至少两项业务指的是两项或两项以上业务。这里所说的应用程序的业务可以指的是在应用程序内能够实现的功能。在一些示例中,应用程序中的业务可以包括即时通信、流媒体传输、信息订阅、支付、云存储等等。在此不限定应用程序中的业务的具体类型,应用程序的开发人员可以根据实际需要选择应用程序中的业务的类型。
可以理解的是,由于各项业务所使用的数据类型以及业务模式存在差异,不同的业务所支持的网络协议可能是不同的。
在一些实现方式中,不同业务支持的网络协议可以是不同的。在一些示例中,应用程序的至少两项业务可以包括第一业务和不同于第一业务的第二业务,其中第一业务支持第一协议,第二业务支持第二协议,第二协议和第一协议可以是不同的。
在另一些实现方式中,也可以存在支持相同网络协议的不同业务。在一些示例中,应用程序的至少两项业务可以包括第三业务和不同于第三业务的第四业务,其中第三业务支持第三协议,第四业务也支持第三协议。
在一些实施例中,一项业务可以支持至少一种网络协议。也就是说,可以从多种网络协议中选择一种为该项业务建立长连接。例如,一项业务可以同时支持TCP协议的长连接以及HTTP1协议的长连接。在这种情况下,可以任意选择TCP协议和HTTP1协议中的一种为该项业务建立长连接。
在步骤S104中,可以基于至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议。
对于应用程序中的至少两项业务,为了满足业务的功能正常使用,可以根据各项业务的长连接配置信息为各项业务建立长连接。
在一些实施例中,对于支持不同网络协议的不同业务,可以为不同业务分别建立基于不同网络协议的长连接。例如,可以基于第一业务的长连接配置信息和第二业务的长连接配置信息确定至少一个长连接协议包括用于第一业务的所述第一协议和用于第二业务的所述第二协议。在一些示例中,以第一业务的长连接配置信息指示第一业务支持TCP协议,第二业务的长连接配置信息指示第二业务支持HTTP1协议为例,可以基于第一业务的长连接配置信息和第二业务的长连接配置信息,确定为第一业务建立TCP协议的长连接,为第二业务建立HTTP1协议的长连接。
在一些实施例中,对于支持相同网络协议的不同业务,这些业务可以共享同一条长连接。例如,可以基于第三业务和第四业务的长连接配置信息确定至少一个长连接协议还包括用于第三业务和第四业务的第三协议。在一些示例中,以第三业务的长连接配置信息指示第三业务支持Quic协议,第四业务的长连接配置信息指示第四业务也支持Quic协议为例,可以建议同时用于第三业务和第四业务的Quic协议的长连接,从而实现为第三业务和第四业务建立一条能够共享的Quic协议的长连接。利用这样的方法,可以无需为第三业务和第四业务分别建立一条Quic协议的长连接,能够节省网络资源。
在一些实施例中,应用程序中的业务可以支持多于一种的网络协议。例如,第一业务除了可以支持TCP协议以外,还可以支持Quic协议。第三业务除了支持Quic协议以外,还可以支持HTTP2协议。在这种情况下,可以基于预先设置的规则,将不同协议共同支持的网络协议确定为用于建立长连接的网络协议。也就是说,尽管第一业务和第三业务都支持除了Quic协议以外的另一种网络协议,为了使得第一业务和第三业务能够共享同一条长连接,可以选择第一业务和第三业务共同支持的Quic协议作为用于建立长连接的网络协议,从而节省网络资源。
在步骤S106中,可以基于所确定的至少一个长连接协议建立相应的至少一个长连接。
如结合步骤S104所描述的,根据应用程序内各项业务的长连接配置信息,可以确定能够满足各项业务的至少一个长连接。例如,当第一业务支持TCP协议和Quic协议、第二业务支持HTTP1协议,第三业务支持Quic协议和HTTP2协议,第四业务支持Quic协议的情况下,可以在步骤S106中建立用于第一业务、第三业务、第四业务的Quic协议的长连接以及用于第二业务的HTTP1协议的长连接。
在一些实施例中,在应用程序中集成有用于不同网络协议的协议模块。在一些实现方式中,用于多个不同的网络协议的协议模块可以被集成为一个统一的长连接模块。对于所确定的至少一个长连接协议中的每个长连接协议,加载对应于该长连接协议的协议模块以建立基于该长连接协议的相应的长连接。下文中将结合图4A、4B描述统一的长连接模块的工作原理。在此不再加以赘述。
在一些实施例中,为应用程序中的至少两项业务建立的至少一项长连接是应用程序与长连接服务端之间的网络连接。在一些实现方式中,应用程序中的至少一个业务可以共享同一个长连接服务端。也就是说,上述至少一项长连接是建立在应用程序与同一长连接服务端之间的网络连接。在一些示例中,可以根据业务的长连接配置信息中包括的IP地址、端口以及任何其他网络连接所需的信息建立长连接。
在步骤S108中,可以经由所建立的至少一个长连接与至少两项业务的业务服务端进行通信。
应用程序中的至少两项业务可以对应于不同的业务服务端。各项业务对应的业务服务端可以被部署在服务器中。不同的业务服务端可以被部署在相同的服务器中,也可以被部署在不同的服务器中。用于部署业务服务端的服务器可以是分布式的。
如前所述,在步骤S106中为不同业务建立的不同或相同的协议的长连接都可以连接到同一长连接服务端。为了使各项业务能够实现各自的功能,可以利用长连接服务端将各项业务的业务数据转发到对应的业务服务端,并由长连接服务端接收业务服务端返回的数据并转发给对应的业务。在一些实施例中,业务数据可以是JSON、Protobuf、byte等数据类型,在此不限定业务数据的具体类型。
在一些实施例中,用于应用程序的长连接方法还可以包括断开步骤。在一些实施例中,响应于来自应用程序中至少两项业务的断开连接请求,可以断开所建立的至少一个长连接。
在一些实现方式中,对于任一网络协议的长连接,在使用该网络协议的长连接的一个业务发出断开连接请求时,如果仍有其他业务正在使用该长连接,则不断开该长连接。如果没有其他业务使用该长连接,则可以断开该长连接。
利用本公开示例性实施例的进行长连接的方法,能够为具有跨平台性质的Flutter应用提供整合应用内不同业务的长连接资源的方法,能够节省应用程序使用过程中需要的网络资源,减少建立连接需要花费的时长,并提高连接的稳定性。此外,通过提供统一的长连接方法,能够降低应用程序开发过程中网络方案的整合难度。
图2示出了根据本公开的实施例的用于与业务服务端进行通信的方法的示例性的过程。
如图2所示,在步骤S202中,可以将至少两项业务的业务数据经由至少一个长连接发送至长连接服务端,其中业务数据包括对应业务的业务标识符。
应用程序中的不同业务都连接到同一长连接服务端,并需要由长连接服务端为不同业务的业务数据进行转发。在一些实施例中,可以在业务数据中加入业务标识符的,使得长连接服务端可以基于业务标识符区分用于不同业务的数据。
在一些实施例中,应用程序中的至少两项业务可以经由业务共享的调用接口将业务数据发送给长连接服务端。
在一些实施例中,应用程序中的各项业务可以在长连接服务器中注册自己的业务标识符。在一些实现方式中,可以在长连接服务端的网络连接***处注册业务标识符。
在数据通信的过程中,应用程序中的至少两项业务通过调用共享的调用接口,将各项业务的业务数据通过长连接发送至长连接服务端。
在步骤S204中,可以从长连接服务端接收响应于业务数据的响应数据。其中,该响应数据是通过利用长连接服务端基于业务标识符将业务数据发送至对应于该业务标识符的业务服务端而获取的。
如前所述,在接收到各项业务的业务数据后,长连接服务端可以基于业务标识符将不同业务的业务数据发送至对应于业务标识符的业务服务端。响应于接收到对应业务的业务数据,业务服务端可以将对应的响应数据发送到长连接服务端。
应用程序的至少两项业务通过长连接连接到同一长连接服务端。因此,由该长连接服务端将各项业务的业务服务端发送的响应数据传输给对应的业务。在一些实施例中,响应数据可以包括业务标识符。长连接服务端可以基于业务标识符将响应数据发送给对应的业务,以使得应用程序能够进行业务逻辑的处理。
图3A-3B示出了利用本公开的实施例的应用程序进行长连接的示例性的场景图。在图3A示出的应用场景中,应用程序310的业务模块311可以具有N个不同的业务,包括业务1、业务2……业务N。这N个业务可以支持相同或不同类型的长连接。利用本公开结合图1、图2描述的方法,这N个业务可以通过应用程序中集成的长连接模块312与长连接服务端之间建立共享的长连接,从而实现与对应的业务服务端进行网络连接。
在一些实施例中,长连接模块312中可以集成有至少两个网络协议。如图3B所示,长连接模块312中可以集成有HTTP1协议、HTTP2协议、TCP协议等。在一些实施例中,长连接模块312中还可以集成有GRCP协议以及Quic协议。
如前所述,业务1可以经由长连接将业务1的业务数据发送到长连接服务端,并由长连接服务端将业务1的业务数据转发给业务服务端1 331。在一些实现方式中,长连接服务端可以基于业务1的业务标识符将业务1的业务数据转发给业务服务端1 331。在接收到业务服务端1发送的响应数据后,长连接服务端还可以经由图3A中时候出的长连接将响应数据分发给业务1。类似地,应用程序310中的N个业务可以利用应用程序和长连接服务端之间建立的长连接进行网络连接,从而与业务服务端2 332、业务服务端N 333等业务服务端之间进行数据通信。
图4A示出了根据本公开的实施例的应用程序的长连接模块的示意性的框图。
如图4A所示,长连接模块410可以包括协议模块411和输入/输出模块412。其中,协议模块411中可以集成有至少两种网络协议。在一些实施例中,协议模块411中可以集成有传输控制协议、安全传输层协议、超文本传输协议、Quic协议和GRPC协议中的两种或更多种。在另一些实施例中,协议模块411还可以集成更多其他类型的网络协议。
在一些实现方式中,可以基于Dart语言对至少两种网络协议的调用模块进行集成。
如图4A所示,在长连接模块中,可以通过配置接口413、连接接口414、断开接口415以及调用接口416访问并调用协议模块411。
当集成有长连接模块410的应用程序启动后,可以调用配置接口413,并获取初始的长连接选项、长连接服务所需的唯一的长连接标识以及长连接服务所需的协议策略。在一些实施例中,初始的长连接选项、长连接服务所需的唯一的长连接标识以及长连接服务所需的协议策略可以是由长连接服务端420下发的。
当应用程序中的业务需要建立长连接时,配置接口413可以获取业务的长连接配置信息,并确定用于建立长连接的长连接协议。
基于当前需要使用的业务的长连接配置信息以及从长连接服务端获取的建立长连接所需的信息,业务可以经由连接接口414调用协议模块中集成的相应的网络协议所需的模块在应用程序中的长连接模块410和长连接服务端420之间建立长连接。在长连接的过程中,数据可以经由长连接模块410中的输入/输出模块412进行发送/接收。
应用程序中的业务可以条用注册接口417并将传输业务数据所需的业务标识符经由输入/输出模块412发送至长连接服务端,以在长连接服务端420处注册网络连接***。
在长连接过程中,业务可以调用长连接模块的调用接口416,以经由建立好的长连接将业务数据经由长连接模块中的输入/输出模块发送至长连接服务端,并从长连接服务端接收由业务服务端(431、432)返回的响应数据。其中,长连接服务端420可以基于注册好的业务标识符将业务数据转发到对应的业务服务端,并基于业务标识符将从业务服务端接收的响应数据分发给业务。
当业务不再需要长连接时,可以通过调用长连接模块的断开接口415断开该业务使用的长连接。如前所述,如果存在仍在使用该条长连接的其他业务,则可以保持该条长连接不断开。
图4B示出了根据本公开的实施例协议模块的示意图。
如图4B所示,协议模块411可以包括配置单元4111、连接单元4112、断开单元4113以及传输单元4114。在一些实施例中,协议模块411中可以包括针对不同网络协议的多个子模块,并且每个子模块中包括各自的配置单元4111、连接单元4112、断开单元4113以及传输单元4114。可以对用于不同网络协议的配置单元、连接单元、断开单元以及传输单元分别进行封装。所有网络协议的子模块的都可以通过统一的配置接口、连接接口、断开借口以及调用接口进行调用。在确定了长连接要使用的网络协议后,可以根据所确定的网络协议的类型调用相应类型的子模块。
下面将以协议模块411中的用于一个网络协议的子模块为例描述本公开的原理。可以理解的是,图4B中描述的过程可以应用于协议模块411中的任意一个网络协议的子模块。
配置单元4111可以通过调用配置接口413获取用于建立长连接的配置信息,例如IP地址、端口等。
连接单元4112可以基于配置单元获取的配置信息,基于该子模块对应的网络协议建立连接。
当业务经由调用接口416发送数据时,传输单元4114可以将数据调用网络协议的发送接口,以将数据经由长连接模块的输入/输出模块传输给长连接服务端。
断开单元4113可以响应于断开接口接收的断开连接请求断开连接。在一些实现方式中,断开单元还可以销毁连接时创建的用于连接的对象。
可以理解的是,由于不同的网络协议在创建连接、传输数据以及断开连接时的处理方式存在差异,在创建每个网络协议的子模块的封装时,本领域技术人员可以根据实际情况在子模块中增加更多的单元或省略部分单元。
图5示出了根据本公开的实施例的进行长连接的装置的示意性框图。如图5所示,装置500可以包括配置单元510、协议确定单元520、长连接建立单元530以及通信单元540。
配置单元510可以配置成经由业务共享的配置接口获取应用程序中至少两项业务的长连接配置信息。协议确定单元520可以配置成基于至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议。长连接建立单元530可以配置成基于所确定的至少一个长连接协议建立相应的至少一个长连接。通信单元540可以配置成经由所建立的至少一个长连接与至少两项业务的业务服务端进行通信。
这里所说的用于监测成像设备的装置500的上述各单元510~540的操作分别与前面描述的步骤S102~S108的操作类似,在此不再加以赘述。
利用本公开示例性实施例的进行长连接的装置,能够为具有跨平台性质的Flutter应用提供整合应用内不同业务的长连接资源的方法,能够节省应用程序使用过程中需要的网络资源,减少建立连接需要花费的时长,并提高连接的稳定性。此外,通过提供统一的长连接方法,能够降低应用程序开发过程中网络方案的整合难度。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作的另一个组件或模块(或结合该特定模块一起执行该动作)。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
更一般地,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图5中描述的各个单元可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,配置单元510、协议确定单元520、长连接建立单元530以及通信单元540中的一个或多个可以一起被实现在片上***(SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
本公开示例性实施例提供了一种可以用作终端设备的电子设备,该电子设备可包括处理器;以及存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行前述任何方法。
本公开示例性实施例还提供了一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述处理器执行前述任何方法。
下面参考图6来描述这样的电子设备和计算机可读存储介质的示例。
图6示出了可以被用来实施本文所描述的模块和功能或者电子设备的计算设备600的示例配置。计算设备600可以是各种不同类型的设备,例如服务提供商的服务器、与客户端(例如,客户端设备)相关联的设备、片上***、和/或任何其它合适的计算设备或计算***。计算设备600的示例包括但不限于:台式计算机,服务器计算机、笔记本电脑或上网本计算机、移动设备(例如,平板电脑或者phablet设备、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、手表)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏机)、电视或其他显示设备、汽车计算机等等。因此,计算设备600的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持游戏控制台)。
计算设备600可以包括能够诸如通过***总线614或其他适当的连接彼此通信的至少一个处理器602、存储器604、(多个)通信接口606、显示设备608、其他输入/输出(I/O)设备610以及一个或更多大容量存储设备612。
处理器602可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器602可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器602可以被配置成获取并且执行存储在存储器604、大容量存储设备612或者其他计算机可读介质中的计算机可读指令,诸如操作***616的程序代码、应用程序618的程序代码、其他程序620的程序代码等。
存储器604和大容量存储设备612是用于存储指令的计算机存储介质的示例,所述指令由处理器602执行来实施前面所描述的各种功能。举例来说,存储器604一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备612一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器604和大容量存储设备612在本文中都可以被统称为存储器或计算机存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非瞬时性介质,所述计算机程序代码可以由处理器602作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
多个程序模块可以存储在大容量存储设备612上。这些程序包括操作***616、一个或多个应用程序618、其他程序620和程序数据622,并且它们可以被加载到存储器604以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):配置单元510、协议确定单元520、长连接建立单元530以及通信单元540、结合图1-图2描述的方法、和/或本文描述的另外的实施例。
虽然在图6中被图示成存储在计算设备600的存储器604中,但是模块616、618、620和622或者其部分可以使用可由计算设备600访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机存储介质和通信介质。
计算机存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算设备访问的任何其他非传送介质。
与此相对,通信介质可以在诸如载波或其他传送机制之类的已调数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。本文所定义的计算机存储介质不包括通信介质。
计算设备600还可以包括一个或更多通信接口606,以用于诸如通过网络、直接连接等等与其他设备交换数据,正如前面所讨论的那样。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。通信接口606可以促进在多种网络和网络协议内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口606还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备608,以用于向用户显示信息和图像。其他I/O设备610可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
虽然在附图和和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,不定冠词“一”或“一个”不排除多个,并且术语“多个”是指两个或两个以上。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。

Claims (15)

1.一种用于Flutter应用程序的进行长连接的方法,包括:
经由业务共享的配置接口获取应用程序中至少两项业务的长连接配置信息;
基于所述至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议;
基于所确定的至少一个长连接协议建立相应的至少一个长连接;
经由所建立的至少一个长连接与用于所述至少两项业务的业务服务端进行通信。
2.如权利要求1所述的方法,其中,所述至少两项业务中每项业务的长连接配置信息包括该项业务支持的网络协议。
3.如权利要求2所述的方法,其中所述网络协议选自由以下各项构成的组的至少一个:传输控制协议、安全传输层协议、超文本传输协议、Quic协议和GRPC协议。
4.如权利要求2所述的方法,其中,所述至少两项业务包括第一业务和不同于所述第一业务的第二业务,所述第一业务支持第一协议,所述第二业务支持第二协议,所述第二协议不同于第一协议。
5.如权利要求4所述的方法,其中,基于所述至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议包括:
基于所述第一业务的长连接配置信息和所述第二业务的长连接配置信息确定所述至少一个长连接协议包括用于所述第一业务的所述第一协议和用于所述第二业务的所述第二协议。
6.如权利要求5所述的方法,其中,所述至少两项业务包括还包括第三业务和不同于所述第三业务的第四业务,所述第三业务支持第三协议,所述第四业务支持所述第三协议。
7.如权利要求6所述的方法,其中,基于所述至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议还包括:
基于所述第三业务和所述第四业务的长连接配置信息确定所述至少一个长连接协议还包括用于所述第三业务和所述第四业务的所述第三协议。
8.如权利要求1所述的方法,其中,基于所确定的至少一个长连接协议建立相应的至少一个长连接包括:
对于所确定的至少一个长连接协议中的每个长连接协议,加载对应于该长连接协议的协议模块以建立基于该长连接协议的相应的长连接。
9.如权利要求1所述的方法,其中所述至少一个长连接是所述应用程序与长连接服务端之间的网络连接。
10.如权利要求9所述的方法,其中,经由所建立的至少一个长连接与用于所述至少两项业务的业务服务端进行通信包括:
将所述至少两项业务的业务数据经由所述至少一个长连接发送至所述长连接服务端,其中所述业务数据包括对应业务的业务标识符;以及
从所述长连接服务端接收响应于所述业务数据的响应数据,
其中,所述响应数据是通过利用所述长连接服务端基于所述业务标识符将所述业务数据发送至对应于所述业务标识符的业务服务端而获取的。
11.如权利要求9所述的方法,其中所述至少一个业务共享同一个长连接服务端。
12.如权利要求1所述的方法,还包括:
响应于来自所述至少两项业务的断开连接请求,断开所建立的至少一个长连接。
13.一种用于Flutter应用程序的进行长连接的装置,包括:
配置单元,配置成经由业务共享的配置接口获取应用程序中至少两项业务的长连接配置信息;
协议确定单元,配置成基于所述至少两项业务的长连接配置信息确定用于建立长连接的至少一个长连接协议;
长连接建立单元,配置成基于所确定的至少一个长连接协议建立相应的至少一个长连接;
通信单元,配置成经由所建立的至少一个长连接与所述至少两项业务的业务服务端进行通信。
14.一种终端设备,包括:
处理器;以及
存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1至12中任一项所述的方法。
15.一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述处理器执行根据权利要求1至12中任一项所述的方法。
CN202011260317.0A 2020-11-12 2020-11-12 进行长连接的方法、装置、终端设备以及介质 Active CN112383617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011260317.0A CN112383617B (zh) 2020-11-12 2020-11-12 进行长连接的方法、装置、终端设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011260317.0A CN112383617B (zh) 2020-11-12 2020-11-12 进行长连接的方法、装置、终端设备以及介质

Publications (2)

Publication Number Publication Date
CN112383617A true CN112383617A (zh) 2021-02-19
CN112383617B CN112383617B (zh) 2024-05-24

Family

ID=74583147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011260317.0A Active CN112383617B (zh) 2020-11-12 2020-11-12 进行长连接的方法、装置、终端设备以及介质

Country Status (1)

Country Link
CN (1) CN112383617B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923249A (zh) * 2021-10-12 2022-01-11 工银科技有限公司 一种高性能网络长连接建立方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104009938A (zh) * 2014-06-17 2014-08-27 合一网络技术(北京)有限公司 基于路由层面的长连接的方法和***
CN104796387A (zh) * 2014-01-21 2015-07-22 腾讯科技(深圳)有限公司 一种网络长连接的通信方法及装置
CN105227398A (zh) * 2015-09-08 2016-01-06 深圳创维-Rgb电子有限公司 多业务共享长连接方法、***及其装置、终端
WO2016054977A1 (zh) * 2014-10-09 2016-04-14 腾讯科技(深圳)有限公司 一种互动应答的方法及装置
WO2016090995A1 (zh) * 2014-12-10 2016-06-16 北京奇虎科技有限公司 页面与长连接服务器间的通信方法及客户端
CN105763634A (zh) * 2016-04-14 2016-07-13 北京思特奇信息技术股份有限公司 一种基于tcp长连接的服务实现方法和装置
CN108234149A (zh) * 2016-12-09 2018-06-29 沈阳美行科技有限公司 一种网络请求的管理方法和装置
US10432720B1 (en) * 2014-06-25 2019-10-01 Symantec Corporation Systems and methods for strong information about transmission control protocol connections
CN111314419A (zh) * 2020-01-16 2020-06-19 广州酷狗计算机科技有限公司 网络请求方法及装置
CN111414208A (zh) * 2020-03-13 2020-07-14 百度在线网络技术(北京)有限公司 应用程序的启动方法、装置及设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796387A (zh) * 2014-01-21 2015-07-22 腾讯科技(深圳)有限公司 一种网络长连接的通信方法及装置
CN104009938A (zh) * 2014-06-17 2014-08-27 合一网络技术(北京)有限公司 基于路由层面的长连接的方法和***
US10432720B1 (en) * 2014-06-25 2019-10-01 Symantec Corporation Systems and methods for strong information about transmission control protocol connections
WO2016054977A1 (zh) * 2014-10-09 2016-04-14 腾讯科技(深圳)有限公司 一种互动应答的方法及装置
WO2016090995A1 (zh) * 2014-12-10 2016-06-16 北京奇虎科技有限公司 页面与长连接服务器间的通信方法及客户端
CN105227398A (zh) * 2015-09-08 2016-01-06 深圳创维-Rgb电子有限公司 多业务共享长连接方法、***及其装置、终端
CN105763634A (zh) * 2016-04-14 2016-07-13 北京思特奇信息技术股份有限公司 一种基于tcp长连接的服务实现方法和装置
CN108234149A (zh) * 2016-12-09 2018-06-29 沈阳美行科技有限公司 一种网络请求的管理方法和装置
CN111314419A (zh) * 2020-01-16 2020-06-19 广州酷狗计算机科技有限公司 网络请求方法及装置
CN111414208A (zh) * 2020-03-13 2020-07-14 百度在线网络技术(北京)有限公司 应用程序的启动方法、装置及设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DYLAN93: "Flutter集成gRPC", HTTPS://BLOG.CSDN.NET/WEIXIN_38951817/ARTICLE/DETAILS/88556360, 14 March 2019 (2019-03-14), pages 1 - 8 *
WEIXIN_38951817: "Android studio 集成 flutter SDK", HTTPS://BLOG.CSDN.NET/WEIXIN_38951817/ARTICLE/DETAILS/88556360, 14 March 2019 (2019-03-14), pages 1 - 3 *
圆胖肿: "使用flutter如何进行聊天功能的开发?", HTTPS://WWW.ZHIHU.COM/QUESTION/326672274/ANSWER/703043769, 2 June 2019 (2019-06-02), pages 1 - 2 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923249A (zh) * 2021-10-12 2022-01-11 工银科技有限公司 一种高性能网络长连接建立方法及装置

Also Published As

Publication number Publication date
CN112383617B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
EP3550892B1 (en) Method for network slice selection, user equipment, and network device
KR101984413B1 (ko) 서비스 레이어를 통해 제3자 서비스들에 대한 액세스를 가능하게 하는 시스템들 및 방법들
EP2680500B1 (en) Application discovery
EP3298806B1 (en) Methods and apparatus for analyzing and grouping service layer subscriptions and notifications for enhanced efficiency
CN107222326B (zh) 用于设备间服务的访问方法、配置方法及装置
CN110958281B (zh) 基于物联网的数据传输方法及通信装置
US7836164B2 (en) Extensible network discovery subsystem
JP6966675B2 (ja) スクリーンコンテンツの伝送及びディスプレイ
US20210274328A1 (en) Internet of vehicles message notification method and apparatus
US20150256622A1 (en) Connection management device, communication system, connection management method, and computer program product
WO2017101186A1 (zh) 用于为用户设备的应用建立无线连接的方法
JP2019525604A (ja) ネットワーク機能nf管理方法及びnf管理装置
CN111163130A (zh) 一种网络服务***及其数据传输方法
US10499311B2 (en) Method and apparatus for implementing network sharing
CN112188227A (zh) 一种流媒体数据分发方法和装置
CN110582998A (zh) 群组的通信方法及装置、计算机存储介质、计算机设备
US9185148B1 (en) Methods and systems for efficient discovery of devices in a peer-to-peer network
EP4133709A1 (en) Relocation of application context to edge data network
CN113794652A (zh) 数据处理方法、装置、电子设备及存储介质
CN112383617B (zh) 进行长连接的方法、装置、终端设备以及介质
CN109479214A (zh) 一种负载均衡的方法及相关装置
KR101921275B1 (ko) 메신저에서의 파일 전송 시 기기 간 통신 기술을 활용하는 방법 및 시스템
CN110943975B (zh) 服务注册的方法、装置、计算机设备和存储介质
CN109327517B (zh) 获取无线接入点网络状态的方法及设备
CN107948232B (zh) 基于Hook API的代理实现方法、数据传输方法、装置及***

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