CN107800585B - 网络通信的方法和装置、推送消息的方法和装置 - Google Patents
网络通信的方法和装置、推送消息的方法和装置 Download PDFInfo
- Publication number
- CN107800585B CN107800585B CN201610807978.8A CN201610807978A CN107800585B CN 107800585 B CN107800585 B CN 107800585B CN 201610807978 A CN201610807978 A CN 201610807978A CN 107800585 B CN107800585 B CN 107800585B
- Authority
- CN
- China
- Prior art keywords
- long connection
- server
- client
- message
- establishing
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- 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/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例公开了一种网络通信的方法和装置、推送消息的方法和装置。本发明实施例方法包括:检测与服务器之间是否建立有第一长连接;当检测到与服务器间建立有第一长连接时,对所述第一长连接的状态进行监测;当监测到所述第一长连接断开时,与所述服务器建立第二长链接。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种网络通信的方法和装置、推送消息的方法和装置。
背景技术
Push(推送)业务是一个内容分发的机制,该机制采用客户端/服务器模式的工作方式,服务器不需要客户端发出请求就可以主动将客户端所需要的内容分发给客户端。Push通路指的是服务器用于向客户端推送数据所用的网络通路,建立push通路所使用的实现技术依据于具体的应用场景。
长连接是push通路的其中一种,该长连接的特点是客户端在运行期间始终与服务器保持有一个连接,以便服务器随时采用该长连接向客户端推送消息。采用长连接的好处是即时性好,服务器对客户端的管理难度较低。现有技术中,客户端和服务器之间仅建立有一个长连接,若某些原因导致该长连接断开,则数据的实时性得不到保障,导致push通路的可靠性较低。
发明内容
本发明实施例提供了一种网络通信的方法和装置、推送消息的方法和装置,能够提高push通路的可靠性。
第一方面,本发明实施例提供一种网络通信的方法,包括:
检测与服务器之间是否建立有第一长连接;
当检测到与服务器间建立有第一长连接时,对所述第一长连接的状态进行监测;
当监测到所述第一长连接断开时,与所述服务器建立第二长链接。
第二方面,本发明实施例提供一种推送消息的方法,包括:
在与客户端建立的第一长连接断开且接收到所述客户端发送的建立请求时,和所述客户端建立第二长连接;
通过所述第二长连接向所述客户端推送消息。
第三方面,本发明实施例提供一种网络通信的装置,包括:
检测模块,用于检测与服务器之间是否建立有第一长连接;
监测模块,用于当检测到与服务器间建立有第一长连接时,对所述第一长连接的状态进行监测;
建立模块,用于当监测到所述第一长连接断开时,与所述服务器建立第二长链接。
第四方面,本发明实施例提供一种推送消息的装置,包括:
建立模块,用于在与客户端建立的第一长连接断开且接收到所述客户端发送的建立请求时,和所述客户端建立第二长连接;
推送模块,用于通过所述第二长连接向所述客户端推送消息。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明中,在检测到客户端和服务器间的第一长连接断开时,和服务器建立第二长连接,使得客户端和服务器间保持有至少一个长连接,保障了数据的实时性,提高push通路的可靠性。
附图说明
图1为本发明的网络通信的方法的一个实施例的流程示意图;
图2为本发明的网络通信的方法的一个实施例的流程示意图;
图3为本发明的推送消息基础架构的一个实施例的结构示意图;
图4为本发明的网络通信的装置的一个实施例的结构示意图;
图5为本发明的推送消息的装置的一个实施例的结构示意图;
图6为本发明的终端的一个实施例的结构示意图;
图7为本发明的服务器的一个实施例的结构示意图。
具体实施方式
请参阅图1,图1为本发明的网络通信的方法的一个实施例的流程示意图。本实施例中,网络通信的方法包括:
101、检测与服务器之间是否建立有第一长连接。
102、当检测到与服务器间建立有第一长连接时,对所述第一长连接的状态进行监测。
103、当监测到所述第一长连接断开时,与所述服务器建立第二长链接。
本实施例中,第一长连接是客户端中的第一进程和服务器所建立的长连接,该长连接用于接收服务器推送给客户端的消息。例如,服务器通过长连接对采用windows7版本的操作***的客户端推送一个操作***更新的提示消息。与服务器建立第一长连接的第一进程一般是默认设置好的,而且该第一长连接一般为第一进程在启动时就和服务器建立好。
客户端中的第二进程对该第一长连接的状态进行检测。具体的,第二进程可以通过IPC来和第一进程通信,以获取该第一长连接的状态。本实施例中,第一进程和第二进程分别有多种。可选的,第一进程为客户端中***服务,第二进程为客户端中桌面应用。其中,***服务指的是用于执行***功能的进程,***服务一般在客户端后台运行,不会出现程序窗口或者对话框,只在任务管理器中才能观察到;桌面应用指的是有程序窗口或者对话框,以和用户进行交互的进程。由于***服务一般在客户端运行期间存活时间相对较长,和服务器创建的长连接也相对较稳定,因此第一进程优选为***服务。
或者,第一进程或第二进程也可以是客户端中一个独立的进程,没有界面,在启动之后专门创建长连接,执行push操作,在此不作限制。
对第一长连接进行监测的方法有多种。举例来说,第一进程在建立第一长连接时还创建有目标标记位,该目标标记位在创建时的取值为默认初始值(例如0或者FALSE),当第一长连接断开时,第一进程将该目标标记位的取值更改为目标值(例如1或者TRUE)。第二进程通过进程间通信(英文全称:Inter-Process Communication,英文缩写:IPC)来获取第一进程中的目标标记位的当前取值来检测第一长连接的状态。其中,IPC的方法有多种,例如通过共享内容的方法,或者通过管道发送的方法,这些方法为现有技术,在此不再赘述。
当第二进程监测到目标标记位的当前值为所述目标值时,确认所述第一长连接断开,那么第二进程和服务器建立第二长连接。其中,创建长连接的方法一般为创建套接字(socket),通过套接字和向服务器通信,然后监听客户端的网络端口是否有接收到来自该服务器的响应数据,若有,对该响应数据进行解析和处理,并确认长连接建立成功。该创建长连接的方法为现有技术,在此不再赘述。
第二进程和服务器建立第二长连接后,通过该第二长连接接收服务器推送的消息。
其中,客户端中与服务器建立长连接的进程对服务器是透明的,也即服务器并不知道与其建立长连接的进程是什么进程。服务器通过长连接给客户端推送的消息内包括有用于执行该消息的目标进程的标识。以第二长连接为例,当第二进程接收到服务器通过所述第二长连接推送的消息时,第二进程获取该消息中的目标进程的标识,并通过IPC将所述消息发送给所述目标进程。
本实施例中,在检测到客户端和服务器间的第一长连接断开时,和服务器建立第二长连接,使得客户端和服务器间保持有至少一个长连接,保障了数据的实时性,提高push通路的可靠性。
可选的,本实施例中,第二进程和与所述服务器建立第二长链接之后,还定期向服务器发送心跳数据包,所述心跳数据包包括客户端的标识。例如,客户端的标识为客户端的全局唯一标识符(英文全称:Globally Unique Identifier,英文缩写:GUID)。具体的,该心跳数据包还可以包括客户端当前操作***的版本、位数等基本信息,在此不作限制。
当第二进程接收到所述服务器发送的对所述心跳数据包的响应数据包时,确定所述第二长连接的状态正常。具体的,该响应数据包中包含一个特殊字段,以便客户端在接收到该响应数据包时确定该数据包是对心跳数据包的响应。当然,第一长连接在未断开时,第一进程也可以采用该方法来监测第一长连接的状态,当第一进程在发送心跳数据包后未接收到服务器发送的响应数据包时,即可确定第一长连接断开。
图1所示实施例中,第二进程是在监测到第一长连接断开时,才和服务器建立第二长连接。可选的,本发明中,在第一长连接未断开时,第二进程也可以和服务器建立第二长连接。
在本发明的一些可能的实现方式中,在第一长连接未断开时,第二进程确定预置数值,所述预置数值用于指示客户端可以同时存在的长连接的数量上限,该预置数值可以是默认设置在客户端内,也可以通过接收用户的设置来存储在客户端内,在此不作限制。当所述预置数值大于或者等于2时,第二进程与所述服务器建立所述第二长连接。
本发明中,第一进程和第二进程也可以为同一个进程。但是,在第一长连接出现断开的情况时,第一进程和服务器之的通路一般是有问题的,因此优选换一个进程来和服务器建立长连接,也即第一进程和第二进程为不同进程。或者,第一进程和第二进程为同一个进程,其中,当第二进程检测到第一长连接断开时,等待预置时长后与所述服务器建立第二长连接。
上面从客户端一侧对本发明的网络通信的方法进行了描述,下面将从服务器一侧对本发明的推送消息的方法进行描述。
请参阅图2,图2为本发明的推送消息的方法的一个实施例的流程示意图。本实施例中,推送消息的方法包括:
201、在与客户端建立的第一长连接断开且接收到所述客户端发送的建立请求时,和所述客户端建立第二长连接。
202、通过所述第二长连接向所述客户端推送消息。
服务器和客户端之间建立有第一长连接。当该第一长连接断开时,客户端向服务器请求建立第二长连接。当服务器接收该建立请求时,和该客户端建立第二长连接。在需要向客户端推送消息时,通过该第二长连接发送该消息。
本实施例中,在第一长连接断开时,服务器和客户端建立第二长连接,使得客户端和服务器间保持有至少一个长连接,保障了数据的实时性,提高push通路的可靠性。
可选的,本实施例中,在所述第一长连接未断开时,若接收到客户端发送的建立请求,和所述客户端建立第二长连接。这样,服务器和客户端之间建立有两条长连接。在服务器向客户端推送消息时,可选择其中一条长连接来推送消息,或者交替采用该两条长连接推送消息。
可选的,本实施例中,在服务器和客户端建立有两条长连接的情况中,服务器在向客户端推送消息时,获取所述第一长连接和所述第二长连接的负载;采用所述第一长连接和所述第二长连接中负载较小的长连接向所述客户端推送消息。其中,获取长连接的负载的方法有多种。例如,通过获取长连接的当前传输量来确认该长连接的负载。当然,上述仅为举例,并不作限制。
可选的,本实施例中,服务器内包括状态服务和逻辑服务两个模块,其中该状态服务用于维护服务器和各客户端之间的长连接,逻辑服务用于从状态服务处提取所述长连接的状态信息,并根据该状态信息向客户端推送消息。具体的,服务器内的状态服务周期性接收客户端发送的心跳数据包,当服务器接收到该心跳数据包时,表明与该客户端之间的长连接状态正常,并向客户端返回响应数据包,以便客户端根据该响应数据包确认长连接状态正常。若该长连接状态正常,服务器在执行推送消息时,通过该长连接向客户端推送消息。
为方面理解本发明,下面结合一个实际应用场景对本发明的网络通信的方法和推送消息的方法进行举例描述。如图3所示,图3为本发明的推送消息基础架构的一个实施例的结构示意图。
本实施例中,客户端30内包括第一进程和第二进程,该第一进程和第二进程之间可以通过IPC来通信,其中,第一进程为***服务,第二进程为桌面应用。服务器40内包括状态服务模块和逻辑服务模块。
客户端30内的第一进程在启动时就创建套接字,通过该套接字和服务器40通信,当监听到网络端口处接受到来自服务器40的响应数据时,确定和服务器40建立第一长连接,通过该第二长连接接收服务器40推送的消息。第一进程还创建目标标记位,将该目标标记位的取值设为TRUE。
客户端30内的第二进程和第一进程通过IPC来监测所述目标标记位的当前取值,当第二进程确认该目标标记位的取值为TRUE时,确定第一长连接正常工作。
在第一长连接的工作时长内,第一进程每隔预置时间向服务器40中的状态服务模块发送心跳数据包,该心跳数据包包括客户端30的标识。当服务器40中的状态服务模块接收该心跳数据包时,确认与客户端30的长连接状态正常,并向该客户端返回响应数据包。第一进程在接收到该响应数据包时,确定第一长连接状态正常。当第一进程没有接收到心跳数据包的响应数据包时,确定第一长连接断开,并将标标记位的取值被更改为FALSE。
当第二进程确认该目标标记位的取值为FALSE时,创建套接字,通过该套接字和服务器40通信,当监听到网络端口处接受到来自服务器40的响应数据时,确定和服务器40建立第二长连接,通过该第二长连接接收服务器40推送的消息。或者,在一些特殊情况中,第二进程需要和服务器40建立第二长连接,那么第二进程主动和服务器40建立第二长连接,这样,客户端30内同时存在至少两条和服务器建立的长连接。可选的,第二进程在和服务器40建立第二长连接之前,还获取预置数值,该预置数值用于指示客户端可以同时存在的长连接的数量上限;当所述预置数值大于或者等于2时,与所述服务器建立所述第二长连接。
在第二长连接的工作时长内,第二进程每隔预置时间向服务器40中的状态服务模块发送心跳数据包,该心跳数据包包括客户端30的标识。当服务器40中的状态服务模块接收该心跳数据包时,确认与客户端30的长连接状态正常,并向该客户端返回响应数据包。第二进程在接收到该响应数据包时,确定第二长连接状态正常。当第二进程没有接收到心跳数据包的响应数据包时,确定第二长连接断开。
服务器40内的逻辑服务模块定时从状态服务模块处获取与客户端30的长连接的状态信息。若该长连接状态正常,那么逻辑服务模块根据具体规则向客户端30推送消息。在服务器40和客户端30同时存在至少两条长连接时,逻辑服务模块还可以从状态服务模块处获取每一条长连接的状态信息,若每一条长连接都状态正常,那么逻辑服务模块获取每一条长连接的负载,并挑选负载最小的一条长连接根据具体规则向客户端30推送消息。
其中,服务器40向客户端30推送的消息内还包括指示用于处理所述消息的目标进程。客户端30内通过长连接接收消息的进程根据该消息将该消息通过IPC发送给目标进程,以便目标进程处理该消息。
上面对本发明的网络通信的方法和推送消息的方法进行了描述,下面将对本发明的网络通信的装置和推送消息的装置进行描述。
请参阅图4,图4为本发明的网络通信的装置的一个实施例的结构示意图。本实施例中,网络通信的装置400包括:
检测模块401,用于检测与服务器之间是否建立有第一长连接;
监测模块402,用于当检测到与服务器间建立有第一长连接时,对所述第一长连接的状态进行监测;
建立模块403,用于当监测到所述第一长连接断开时,与所述服务器建立第二长链接。
本实施例中,在检测到客户端和服务器间的第一长连接断开时,和服务器建立第二长连接,使得客户端和服务器间保持有至少一个长连接,保障了数据的实时性,提高push通路的可靠性。
可选的,所述网络通信的装置400还包括:
通信模块404,用于在所述建立模块403与所述服务器建立第二长链接之后,接收所述服务器通过所述第二长连接推送的消息,所述消息包括指示用于处理所述消息的目标进程;通过进程间通信IPC将所述消息发送给所述目标进程。
可选的,所述监测模块402具体用于当监测到所述第一长连接断开时,对目标标记位的取值进行监测,其中,所述目标标记位的取值在所述第一长连接断开时被更改为目标值;当监测到所述目标标记位的当前值为所述目标值时,确认所述第一长连接断开。
可选的,所述第一长连接为所述网络通信的装置中***服务和所述服务器建立的长连接;
和/或,
所述第二长连接为所述网络通信中桌面应用和所述服务器建立的长连接。
可选的,所述网络通信的装置400还包括:
维护模块405,用于在所述建立模块与所述服务器建立第二长链接之后,定期向服务器发送心跳数据包,所述心跳数据包包括所述网络通信的标识;当接收到所述服务器发送的对所述心跳数据包的响应数据包时,确定所述第二长连接的状态正常。
可选的,所述建立模块403还用于:
在所述第一长连接未断开时确定预置数值,所述预置数值用于指示所述网络通信可以同时存在的长连接的数量上限;
当所述预置数值大于或者等于2时,与所述服务器建立所述第二长连接。
请参阅图5,图5为本发明的推送消息的装置的一个实施例的结构示意图。本实施例中,推送消息的装置500包括:
建立模块501,用于在与客户端建立的第一长连接断开且接收到所述客户端发送的建立请求时,和所述客户端建立第二长连接;
推送模块502,用于通过所述第二长连接向所述客户端推送消息。
本实施例中,在第一长连接断开时,推送消息的装置和客户端建立第二长连接,使得客户端和推送消息的装置间保持有至少一个长连接,保障了数据的实时性,提高push通路的可靠性。
可选的,所述建立模块501还用于在所述第一长连接未断开时,若接收到客户端发送的建立请求,和所述客户端建立第二长连接。
可选的,所述推送模块502用于:
获取所述第一长连接和所述第二长连接的负载;
采用所述第一长连接和所述第二长连接中负载较小的长连接向所述客户端推送消息。
本发明实施例还提供了另一种终端,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图6中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理***与处理器1080逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器1080还具有控制执行以上由网络通信的装置或者客户端执行的方法流程。
图7是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processingunits,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作***1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器或者推送消息的装置所执行的步骤可以基于该图7所示的服务器结构。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (17)
1.一种网络通信的方法,其特征在于,包括:
检测与服务器之间是否建立有第一长连接;
当检测到与所述服务器间建立有第一长连接时,对所述第一长连接的状态进行监测;
当监测到所述第一长连接断开时,与所述服务器建立第二长连接;
当所述第一长连接未断开,且预置数值大于或等于2时,与所述服务器建立所述第二长连接;所述预置数值用于指示客户端可以同时存在的长连接的数量上限;所述第一长连接与所述第二长连接用于择一或交替接收所述服务器的推送消息。
2.根据权利要求1所述的网络通信的方法,其特征在于,所述与所述服务器建立第二长连接,之后还包括:
接收所述服务器通过所述第二长连接推送的消息,所述消息内还指示有用于处理所述消息的目标进程;
通过进程间通信IPC将所述消息发送给所述目标进程。
3.根据权利要求1所述的网络通信的方法,其特征在于,所述当监测到所述第一长连接断开时,包括:
对目标标记位的取值进行监测,其中,所述目标标记位的取值在所述第一长连接断开时被更改为目标值;
当监测到所述目标标记位的当前值为所述目标值时,确认所述第一长连接断开。
4.根据权利要求1所述的网络通信的方法,其特征在于,所述第一长连接为客户端中***服务和所述服务器建立的长连接;
和/或,
所述第二长连接为客户端中桌面应用和所述服务器建立的长连接。
5.根据权利要求1所述的网络通信的方法,其特征在于,所述与所述服务器建立第二长连接,之后还包括:
定期向服务器发送心跳数据包,所述心跳数据包包括客户端的标识;
当接收到所述服务器发送的对所述心跳数据包的响应数据包时,确定所述第二长连接的状态正常。
6.一种推送消息的方法,其特征在于,包括:
在与客户端建立的第一长连接断开且接收到所述客户端发送的建立请求时,和所述客户端建立第二长连接;
通过所述第二长连接向所述客户端推送消息;
所述第一长连接未断开时,若接收到客户端发送的建立请求,和所述客户端建立第二长连接;所述第一长连接与所述第二长连接用于择一或交替向所述客户端推送消息。
7.根据权利要求6所述的推送消息的方法,其特征在于,所述方法还包括:
获取所述第一长连接和所述第二长连接的负载;
采用所述第一长连接和所述第二长连接中负载较小的长连接向所述客户端推送消息。
8.一种网络通信的装置,其特征在于,包括:
检测模块,用于检测与服务器之间是否建立有第一长连接;
监测模块,用于当检测到与服务器间建立有第一长连接时,对所述第一长连接的状态进行监测;
建立模块,用于当监测到所述第一长连接断开时,与所述服务器建立第二长连接;
所述建立模块,还用于在所述第一长连接未断开时确定预置数值,所述预置数值用于指示所述网络通信可以同时存在的长连接的数量上限;当所述预置数值大于或者等于2时,与所述服务器建立所述第二长连接;所述第一长连接与所述第二长连接用于择一或交替接收所述服务器的推送消息。
9.根据权利要求8所述的网络通信的装置,其特征在于,所述装置还包括:
通信模块,用于在所述建立模块与所述服务器建立第二长连接之后,接收所述服务器通过所述第二长连接推送的消息,所述消息内还指示有用于处理所述消息的目标进程;通过进程间通信IPC将所述消息发送给所述目标进程。
10.根据权利要求8所述的网络通信的装置,其特征在于,所述监测模块具体用于当监测到所述第一长连接断开时,对目标标记位的取值进行监测,其中,所述目标标记位的取值在所述第一长连接断开时被更改为目标值;当监测到所述目标标记位的当前值为所述目标值时,确认所述第一长连接断开。
11.根据权利要求8所述的网络通信的装置,其特征在于,所述第一长连接为所述网络通信的装置中***服务和所述服务器建立的长连接;
和/或,
所述第二长连接为所述网络通信的装置中桌面应用和所述服务器建立的长连接。
12.根据权利要求8所述的网络通信的装置,其特征在于,所述装置还包括:
维护模块,用于在所述建立模块与所述服务器建立第二长连接之后,定期向服务器发送心跳数据包,所述心跳数据包包括所述网络通信的装置的标识;当接收到所述服务器发送的对所述心跳数据包的响应数据包时,确定所述第二长连接的状态正常。
13.一种推送消息的装置,其特征在于,包括:
建立模块,用于在与客户端建立的第一长连接断开且接收到所述客户端发送的建立请求时,和所述客户端建立第二长连接;
推送模块,用于通过所述第二长连接向所述客户端推送消息;
所述建立模块还用于在所述第一长连接未断开时,若接收到客户端发送的建立请求,和所述客户端建立第二长连接;所述第一长连接与所述第二长连接用于择一或交替向所述客户端推送消息。
14.根据权利要求13所述的推送消息的装置,其特征在于,所述推送模块用于:
获取所述第一长连接和所述第二长连接的负载;
采用所述第一长连接和所述第二长连接中负载较小的长连接向所述客户端推送消息。
15.一种终端设备,其特征在于,包括存储器与处理器;
所述存储器用于存储软件程序;
所述处理器用于运行所述软件程序,以执行如权利要求1-5任一项所述的网络通信的方法。
16.一种服务器,其特征在于,包括存储器与处理器;
所述存储器用于存储软件程序;
所述处理器用于运行所述软件程序,以执行如权利要求6-7任一项所述的推送消息的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,所述指令用于使计算机设备执行如权利要求1-5任一项所述的网络通信的方法,或如权利要求6-7任一项所述的推送消息的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807978.8A CN107800585B (zh) | 2016-09-07 | 2016-09-07 | 网络通信的方法和装置、推送消息的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807978.8A CN107800585B (zh) | 2016-09-07 | 2016-09-07 | 网络通信的方法和装置、推送消息的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107800585A CN107800585A (zh) | 2018-03-13 |
CN107800585B true CN107800585B (zh) | 2021-01-12 |
Family
ID=61530854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610807978.8A Active CN107800585B (zh) | 2016-09-07 | 2016-09-07 | 网络通信的方法和装置、推送消息的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107800585B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600444A (zh) * | 2018-12-14 | 2019-04-09 | 北京向上心科技有限公司 | 数据推送方法、服务器、终端、电子设备及可读存储介质 |
CN110958162A (zh) * | 2019-12-06 | 2020-04-03 | 广东博智林机器人有限公司 | 一种ble级联网络及其链路检测方法、设备和终端 |
CN113162956A (zh) * | 2020-01-22 | 2021-07-23 | 华为技术有限公司 | 一种建立通信连接的方法、装置和网络设备 |
CN111726413B (zh) * | 2020-06-28 | 2022-05-17 | 北京百度网讯科技有限公司 | 设备连接方法和装置 |
CN112437329B (zh) * | 2020-11-05 | 2024-01-26 | 上海幻电信息科技有限公司 | 一种播放视频的方法、装置、设备、及可读存储介质 |
CN115297162B (zh) * | 2022-06-27 | 2024-03-22 | 青岛海尔科技有限公司 | 消息的发送方法和装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532943A (zh) * | 2013-10-08 | 2014-01-22 | 北京神州绿盟信息安全科技股份有限公司 | web应用防火墙设备和安全防护日志的异步处理方法 |
CN103916936A (zh) * | 2013-01-04 | 2014-07-09 | ***通信集团公司 | 实现数据长连接的方法、***及移动终端、服务器 |
CN104717133A (zh) * | 2015-03-16 | 2015-06-17 | 墨仕(厦门)电子商务有限公司 | 一种分布式消息推送***及方法 |
CN105677451A (zh) * | 2014-11-18 | 2016-06-15 | 北京风行在线技术有限公司 | 一种用于多进程的负载均衡的方法和设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291808B (zh) * | 2011-06-03 | 2013-12-04 | 莫雅静 | 一种网络通信方法、通信设备以及通信设备的中间件 |
CN103024043B (zh) * | 2012-12-14 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 一种数据共享方法、服务器及*** |
CN103605689B (zh) * | 2013-11-01 | 2017-12-29 | 北京奇虎科技有限公司 | 一种获取访问停留时间的方法及装置 |
CN103944923A (zh) * | 2014-05-14 | 2014-07-23 | 沈文策 | 网络信息处理***及方法 |
CN105357283B (zh) * | 2015-10-20 | 2020-02-11 | 北京奇宝科技有限公司 | 智能可佩戴设备的长连接建立方法及服务器、终端 |
CN105681391A (zh) * | 2015-12-28 | 2016-06-15 | 智慧方舟科技有限公司 | 一种服务器和安卓客户端及其网络通信方法、装置 |
-
2016
- 2016-09-07 CN CN201610807978.8A patent/CN107800585B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916936A (zh) * | 2013-01-04 | 2014-07-09 | ***通信集团公司 | 实现数据长连接的方法、***及移动终端、服务器 |
CN103532943A (zh) * | 2013-10-08 | 2014-01-22 | 北京神州绿盟信息安全科技股份有限公司 | web应用防火墙设备和安全防护日志的异步处理方法 |
CN105677451A (zh) * | 2014-11-18 | 2016-06-15 | 北京风行在线技术有限公司 | 一种用于多进程的负载均衡的方法和设备 |
CN104717133A (zh) * | 2015-03-16 | 2015-06-17 | 墨仕(厦门)电子商务有限公司 | 一种分布式消息推送***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107800585A (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107800585B (zh) | 网络通信的方法和装置、推送消息的方法和装置 | |
EP3550883B1 (en) | Uplink data transmission method, terminal, network side device and system | |
KR101978590B1 (ko) | 메시지 업데이팅 방법, 장치 및 단말 | |
CN108255683B (zh) | 终端中消息提示的方法和终端 | |
CN110620822A (zh) | 一种网元确定方法和装置 | |
CN110856103B (zh) | 一种调度方法、通信方法和相关设备 | |
CN106293738B (zh) | 一种表情图像的更新方法及装置 | |
CN108668328B (zh) | 一种网络切换方法及移动终端 | |
CN105227598B (zh) | 一种基于云存储的资源分享方法、装置和*** | |
CN112691363A (zh) | 一种云游戏跨终端切换的方法和相关装置 | |
CN110662277A (zh) | 省电管理方法、图形用户界面以及终端 | |
CN109495769B (zh) | 视频通信方法、终端、智能电视、服务器及存储介质 | |
CN115242805A (zh) | 基于gossip的分布式MQTT消息传递方法、传递***及存储介质 | |
CN107317828B (zh) | 文件下载方法及装置 | |
CN106470234B (zh) | 一种设备发现的方法及装置 | |
CN107770381B (zh) | 网络管理方法及相关产品 | |
CN107104760B (zh) | 一种传输数据包的方法、客户端以及服务器 | |
CN114124924A (zh) | 一种确定配置信息的方法、设备及*** | |
CN107786423B (zh) | 一种即时通讯的方法和*** | |
CN112634885A (zh) | 一种跨局域网的语音唤醒方法和装置 | |
CN110602766A (zh) | 一种个人热点识别方法和终端之间关联关系的确定方法 | |
CN106209601B (zh) | 状态更新消息的推送方法及装置 | |
CN107889128B (zh) | 网络质量调整方法和装置 | |
CN106686704B (zh) | 一种终端监测方法及移动终端 | |
CN106817751B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221130 Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Yayue Technology Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |