CN110661848B - 一种基于视联网的消息推送方法、装置、设备和介质 - Google Patents
一种基于视联网的消息推送方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN110661848B CN110661848B CN201910804031.5A CN201910804031A CN110661848B CN 110661848 B CN110661848 B CN 110661848B CN 201910804031 A CN201910804031 A CN 201910804031A CN 110661848 B CN110661848 B CN 110661848B
- Authority
- CN
- China
- Prior art keywords
- video network
- video
- terminal
- long connection
- message
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination 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
-
- 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)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于视联网的消息推送方法、装置、设备和介质。本发明通过向视联网服务器发送长连接建立请求,所述长连接建立请求携带所述视联网终端的标识,接收所述视联网服务器发送的长连接建立响应,与所述视联网服务器建立长连接,该长连接对应于所述视联网终端的标识,接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息。与现有技术相比,本发明的方案不需要搭建消息推送平台,开发门槛低,降低了开发的工作量和成本。本发明通过视联网终端对该终端的处理器进行阻止休眠处理,以达到长连接保持不关闭状态的目的,有效的保障了消息推送的即时性。另外,本发明的消息推动方案部署在视联网中,提高了用户信息的安全性。
Description
技术领域
本发明涉及通信的技术领域,特别是涉及一种基于视联网的消息推送方法、装置、设备和介质。
背景技术
目前消息推送平台众多,如极光、友盟等第三方云推送平台。在视联网的环境下,它们应用于移动互联网中的平台不能与视联网发生交互,必须在视联网中搭建一个新的消息推送平台。因此在视联网中基于视联网后台的消息推送还是空白地带。
随着移动互联网的深入发展,用户在享受互联网便捷的同时个人信息安全威胁却在与日俱增。现在众多公司和个人用户越来越重视信息的安全性,他们抵触自己的应用程序连接到第三方云推送平台中,害怕重要信息泄露。但是用户自己搭建一个消息推送平台十分的耗费人力、物力。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于视联网的消息推送方法、装置、设备和介质。
第一方面,为了解决上述问题,本发明实施例公开了一种基于视联网的消息推送方法,应用于视联网终端,所述方法包括:
向视联网服务器发送长连接建立请求,所述长连接建立请求携带所述视联网终端的标识;
接收所述视联网服务器发送的长连接建立响应,与所述视联网服务器建立长连接,该长连接对应于所述视联网终端的标识;
接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息。
优选的,所述视联网终端建立回调监听,所述回调监听用于监听所述长连接的各种状态。
优选的,所述视联网终端与所述视联网服务器定义所述消息的字段格式。
优选的,解析接收到的消息,判断所述消息的类型;
根据所述类型调用视联网终端中不同功能模块,解析所述消息中的其他字段。
优选的,所述视联网终端针对其处理器进行休眠处理,具体包括:
查询所述标识对应的所述处理器休眠时间,生成小于休眠时间的等待时间;
运行亮屏进程,以监听所述视联网终端的灭屏操作;
在所述视联网终端处于灭屏状态时,启动实时时钟,用于计时等待时间;
若所述计时等待时间完成,则执行亮屏操作,由灭屏状态进入亮屏状态,以使所述处理器保持运行,进而保持所述长连接。
第二方面,为了解决上述问题,本发明实施例还公开了一种基于视联网的消息推送装置,所述装置应用于视联网终端,包括:
长连接建立请求模块,用于向视联网服务器发送长连接建立请求,所述长连接建立请求携带所述视联网终端的标识;
响应接收模块,用于接收所述视联网服务器发送的长连接建立响应,与所述视联网服务器建立长连接,该长连接对应于所述视联网终端的标识;
消息推送模块,用于接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息。
优选的,回调监听模块,用于所述视联网终端建立回调监听,所述回调监听用于监听所述长连接的各种状态。
优选的,字段格式定义模块,用于所述视联网终端与所述视联网服务器定义所述消息的字段格式。
优选的,消息解析模块,用于解析接收到的消息,判断所述消息的类型;
字段解析模块,用于根据所述类型调用视联网终端中不同功能模块,解析所述消息中的其他字段。
优选的,休眠处理模块,用于所述视联网终端针对其处理器进行休眠处理,所述休眠处理模块具体包括:
时间生成子模块,用于查询所述标识对应的所述处理器休眠时间,生成小于休眠时间的等待时间;
显屏监听子模块,用于运行亮屏进程,以监听所述视联网终端的灭屏操作;
计时子模块,用于在所述视联网终端处于灭屏状态时,启动实时时钟,用于计时等待时间;
显屏唤醒子模块,用于若所述计时等待时间完成,则执行亮屏操作,由灭屏状态进入亮屏状态,以使所述处理器保持运行,进而保持所述长连接。
第三方面,为了解决上述问题,本发明实施例还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,优选的,所述处理器执行所述程序时实现如上述第一方面一种基于视联网的消息推送方法的步骤。
第四方面,为了解决上述问题,本发明实施例还公开了一种计算机可读存储介质,优选的,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面一种基于视联网的消息推送方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,通过视联网终端和视联网后台建立一个长连接,在需要的时候由视联网后台发送消息给终端。与现有技术相比,本发明的方案不需要搭建消息推送平台,开发门槛低,降低了开发的工作量和成本。本发明通过视联网终端对该终端的处理器进行阻止休眠处理,让流处于连通状态,以达到长连接保持不关闭状态的目的,有效的保障了消息推送的即时性。另外,本发明的消息推动方案部署在视联网中,提高了用户信息的安全性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明的一种视联网的组网示意图;
图2是本发明的一种节点服务器的硬件结构示意图;
图3是本发明的一种接入交换机的硬件结构示意图;
图4是本发明的一种以太网协转网关的硬件结构示意图;
图5是本发明提供的一种软件架构图;
图6是本发明实施例提供的一种基于视联网的消息推送方法的步骤流程图;
图7是本发明实施例提供的一种视联网终端针对该终端处理器进行休眠处理的步骤流程图;
图8是本发明实施例提供的一种基于视联网的消息推送装置的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块204进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块208是由CPU模块204来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
基于视联网的上述特性,提出了本发明实施例的核心构思之一,首先视联网终端启动后与后台建立一个长连接,该终端通过这个长连接接收过来的消息。同时因为视联网终端在息屏30S左右后CPU会休眠使长连接断开,因此,本发明通过监听息屏点亮屏幕进而阻止CPU休眠。具体参照图5。
本发明方案部署在视联网服务器和视联网终端中,视联网服务器会给每台视联网终端制定mac地址和虚拟终端号,即每台连接在视联网中的视联网终端都有自己独一无二的mac地址和虚拟终端号,该地址和终端号是视联网终端和视联网服务器交互的唯一凭证。同时,视联网服务器不做外网的IP映射,外网不能访问该服务器,即使在视联网中,如果终端设备没有视联网服务器分配的mac地址和虚拟终端号,也不能访问该视联网服务器。
参照图6,图6是本发明实施例提供的一种基于视联网的消息推送方法的步骤流程图。
步骤S101,向视联网服务器发送长连接建立请求,所述长连接建立请求携带所述视联网终端的标识;
在具体实现中,用户启动视联网终端中的长连接程序,视联网终端对视联网后台即视联网服务器,发送一个建立长连接的请求,该请求中包含了视联网终端的标识,该标识可以包含但不限于视联网终端的设备号、视联网终端的序列号。另外,视联网终端可以包含但不限于手机、笔记本、平板电脑。
在一种实施方式中,使用socket进行长连接消息推送。视联网终端用单例模式singleTask的Activity启动任务,这种模式的Activity总是处在Activity堆栈的最低端,并且一个任务中只能被实例化一次。在该Activity的生命周期中用底层API(applicationprogramming interface,是Java自己提供的标准类库)中的create方法创建一个socket长连接。具体的,在视联网终端通过Request request=new Request.Builder().url(xxxxx).build()做长连接建立请求,其中,url中的参数表示需要连接的视联网服务器的地址。将该视联网终端的标识、请求等一起通过视联网发送至视联网服务器中。然后通过okHttp的OkHttpClient.newWebSocket(request,WebSocketListener);把request和WebSocketListener传进去,能够监听到推送消息和长连接的各种状态。
在另一实施例中,使用WebSocket进行长连接消息推送。先通过Request方法做长连接建立请求,再通过okHttp的OkHttpClient.newWebSocket(request,WebSocketListener)监听长连接的各种状态信息,当收到成功的监听回调状态后将相关参数发送给视联网服务器。具体的,视联网终端调用API中类或方法创建WebSocket对象。例如,var ws=new WebSocket(url,[protocol]);其中,第一个参数url为视联网服务器的地址信息,第二个参数protocol是可选的,为指定可接受的子视联网协议。然后使用该对象将视联网终端的信息发送至视联网服务器。例如,ws.send("action":"active","userId":"002355","creatTime":"10235423215"),通过给视联网服务器传递的userId,即视联网终端的标识,让视联网服务器区分发出请求的设备,通过给视联网服务器传递的creatTime,即长连接时间,让视联网服务器知道长连接的连接时长。
步骤S102,接收所述视联网服务器发送的长连接建立响应,与所述视联网服务器建立长连接,该长连接对应于所述视联网终端的标识;
在具体实现中,视联网服务器在接收到长连接建立请求后,会根据预设规则生成一个响应消息,并将该响应消息发送至对应标识的视联网终端。该终端在接到到所述响应消息后与视联网服务器建立长连接,即视联网服务器上搭建了一个长连接的聊天室。
在一种实施方式中,使用socket进行长连接消息推送,具体如下:
(1)视联网服务器创建ServerSocket对象,绑定监听的端口,具体如下:
ServerSocket serverSocket=new ServerSocket(124578);
InetAddress inetAddress=InetAddress.getLocalHost();
String ip=inetAddress.getHostAddress();
上述为创建视联网服务器端ServerSocket对象,指定绑定的端口,并监听此端口,同时通过getHostAddress()得到视联网服务器的地址信息。
(2)视联网服务器通过接收视联网终端发送的建立socket长连接请求,具体如下:
Socket socket=null;
Socket=serverSocket.accept();
上述为视联网服务器使用accept()方法接收视联网终端发送的建立socket长连接的请求。
(3)视联网服务器通过输入流读取视联网终端发送的请求信息,具体如下:
InputStream is=socket.getInputStream();//获取输入流
InputStreamReader isr=new InputStreamReader(is,“UTF-8”);
BufferedReader br=new BufferedReader(isr);
While(br.readLine()!=null){}
上述为视联网服务器通过getInputStream()方法读取请求信息。
(4)通过输出流向视联网终端发送响应信息。
在具体实现中,视联网服务器在步骤(3)后将对视联网终端输出一个响应消息,表示视联网服务器已经准备就绪。
在另一个实施方式中,使用WebSocket或socket进行长连接消息推送。视联网服务器在接受到视联网终端的长连接请求后,会将视联网终端的标识添加进用户列表中,并给终端一个响应消息。其中,用户列表是用来确定与视联服务器保持长连接终端的,若其中一个终端断开链接,则将该终端的标识从用户列表中移除。
步骤S103,接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息。
在具体实现中,在需要的时候用户用视联网服务器将推送消息通过长连接发送至对应标识的视联网终端。
此外,视联网终端还能主动的通过视联网服务器的地址去访问视联网服务器,该终端在访问视联网服务器时携带有参数,该参数包括:mac地址、虚拟终端号、视联网终端的标识等。
在上述实施例中,在步骤S101之前还包括回调监听的的建立,具体情况如下:
步骤S201,所述视联网终端建立回调监听,所述回调监听用于监听所述长连接的各种状态。
在具体实现中,为了保证推送消息的即时性,视联网终端中设置多种回调监听。
在一种实施方式中,以WebSocketListener的监听做回调去监听这个长连接的各种状态。例如,onOpen、onMessage、onClosed、onFailure。当socket长连接创建成功时,即会触发onOpen事件,表示初次创立的socket长连接打开成功;当视联网终端收到视联网服务器发送的消息时,会触发onMessage事件,表示视联网服务器有推送消息发给视联网终端,在此可以通过与视联网服务器后台协议的json格式字符串,对应解析区分各个业务与逻辑做分开处理。当视联网终端收到视联网服务器端发送关闭socket长连接请求时,会触发onClosed事件,做长连接重新创建工作,回到初始化位置,即关闭对应的长连接。若视联网终端、视联网服务器中若出现连接、处理、接收、发送数据失败的时候就会触发onFailure事件,代表长连接失败,视联网终端将对视联网服务器进行轮询操作,即每隔一定时间视联网终端向视联服务器发送建立长连接的请求。若该终端收到响应消息,结束轮询。
在上述实施例中,在本方案具体实施之前视联网服务器端开发人员和视联网终端开发人员协商出一套共用的字段格式,即在上述步骤S201之前还包括定义推送消息字段格式,具体情况如下:
步骤S301,所述视联网终端与所述视联网服务器定义所述消息的字段格式;
在具体实现方式中,视联网终端和视联网服务器中相互间传递的数据中格式和字段含义均保持一致。
在本实施例中,相互间传递的数据以json格式进行数据打包,各打包数据中的字段表示的含义相同。如,字段“type”在视联网终端和视联网服务器中均有三种相同的含义,如type的值为2表示终端间通过视联网服务器即时通讯,1表示是有邮件来了,0表示有新任务。
上述实施例中,在步骤S103之后还包括解析视联网终端接收的新消息,具体情况如下:
步骤S401,解析接收到的消息,判断所述消息的类型;
在具体实现中,视联网终端接收视联网服务器发送的推送消息,然后解析该推送消息中的主题字段,判断该推送消息的类型。
在一种实施例中,视联网终端接收到视联网服务器通过长连接发送过来的推送消息。每条推送消息其实就是打包的json格式数据,该数据包含了表征推送消息类型的字段和其它字段。视联网终端在收到该消息后首先解析表征推送消息类型的字段,判断其类型。
例如在实施例中,用Type表示推送消息类型的字段。Type为0时,表示用户接收到一条新任务,视联网终端发出提示音,并在显示界面弹出提示窗口。举例说明:医生通过视联网服务器给护士一个新的任务,让她给某个病人换药,视联网终端接收到该任务时,发出特定的提示音,并在显示界面优先显示该任务的提示消息,如“您有一条新任务”的提示弹窗或直接在弹窗中显示“今天10:30对3号床刘某换药”等,护士点击该弹窗可以看到该任务更加详细的信息,如换药注意事项,换药对象详细信息,需换的药品信息等。Type为1时,表示视联网服务器对视联网终端发送了一封邮件,视联网终端发出特定的提示音,并在显示界面弹出提示窗口。Type为2时,表示即时通讯,如,护士和病人互发聊天信息。Type的不同值代表着不同的消息推送类型,同时在视联网终端调用不同的功能模块,实现不同的消息推送功能,如,Type为0时调用视联网终端的任务接收模块;Type为1时调用视联网终端的邮件功能模块,Type为2时调用视联网终端即使通讯模块。
步骤S402,根据所述类型调用视联网终端中不同功能模块,解析所述消息中的其他字段。
在具体应用中,视联网终端根据Type的类型调用不同的功能模块去解析推送消息的其它字段,并在该终端界面显示。
例如,{
“type”:1,
“content”:"xxxxxxxx"
}
其中,type值为2表示时通讯,type值为1表示有邮件来了,0表示有新任务;content里面是具体的id,当type值为1时,该id表示发邮件人的id;当type值为0,表示任务id;当type值为2时,该id表示发消息人的id。
视联网终端接收到该推送消息后,开始解析这些type确定该推送消息的类型,再解析content等字段,每个字段都有自己的含义,根据各自字段的含义,视联网终端进行具体事务的处理。例如,跳转不同的页面、图像展示等。
参照图7,在另一实施例中,本发明出示了一种视联网终端针对该终端处理器进行休眠处理的步骤流程图。明示了本发明在视联网终端中防止长连接断开的方法步骤,该方法在上述步骤S101之前,具体如下:
步骤S501,查询所述标识对应的所述处理器休眠时间,生成小于休眠时间的等待时间;
在具体实现中,视联网终端在屏幕关闭到处理器休眠开始,有一段缓冲时间,该时间为处理器的休眠时间。处理器根据该休眠时间生成一段小于该休眠时间的等待时间,该等待时间大约30秒。
视联网终端中,配置的处理器可以指CPU,在满足一定条件下,自动进行休眠状态。
步骤S502,运行亮屏进程,以监听所述视联网终端的灭屏操作;
在具体实现中,在视联网终端亮屏进程运行中,用户按电源键或一段时间无人操作,视联网终端将关闭屏幕,即触发灭屏操作。
视联网终端可以通过监听器程序,监听灭屏操作,即关闭屏幕就触发监听程序。
步骤S503,在所述视联网终端处于灭屏状态时,启动实时时钟,用于计时等待时间;
在具体实现中,因为处理器是在灭屏一段时间后休眠,所以本发明实施例中,不管视联网自动灭屏还是按键灭屏,在灭屏到休眠这段时间内,视联网终端将启动实时时钟记时。
在实施例中,实时时钟是晶振和时钟电路组成,该实时时钟被配置在视联网终端中。视联网移动终端持续给该实时时钟供电,用于计时操作。另一实施例中,视联网终端也可以从本地时间显示模块中读取时间信息,用来计时操作。
步骤S504,若所述计时等待时间完成,则执行亮屏操作,由灭屏状态进入亮屏状态,以使所述处理器保持运行,进而保持所述长连接。
在具体实现中,实时时钟计时完成等待时间,则亮屏进程可以调用操作系统提供的点亮屏幕的接口,视联网终端执行亮屏操作,此时视联网终端由灭屏状态进入亮屏状态,终端的处理器被禁止休眠,处理器保持运行状态,正常处理socket长连接或websocket长连接等业务。
在本发明上述实施例中,通过视联网终端和视联网后台建立一个长连接,在需要的时候由视联网后台发送消息给终端。与现有技术相比,本发明的方案不需要搭建消息推送平台,开发门槛低,降低了开发的工作量和成本。本发明通过视联网终端对该终端的处理器进行阻止休眠处理,让流处于连通状态,以达到长连接保持不关闭状态的目的,有效的保障了消息推送的即时性。另外,本发明的消息推动方案部署在视联网中,提高了用户信息的安全性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图8,出示了本发明实施例提供的一种基于视联网的消息推送装置的框图,具体可以包括如下模块:
字段格式定义模块601,用于所述视联网终端与所述视联网服务器定义所述消息的字段格式。
回调监听模块602,用于所述视联网终端建立回调监听,所述回调监听用于监听所述长连接的各种状态。
长连接建立请求模块603,用于向视联网服务器发送长连接建立请求,所述长连接建立请求携带所述视联网终端的标识。
响应接收模块604,用于接收所述视联网服务器发送的长连接建立响应,与所述视联网服务器建立长连接,该长连接对应于所述视联网终端的标识。
消息推送模块605,用于接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息。
消息解析模块606,用于解析接收到的消息,判断所述消息的类型。
字段解析模块607,用于根据所述类型调用视联网终端中不同功能模块,解析所述消息中的其他字段。
优选的,本发明装置还包括休眠处理模块608,用于所述视联网终端针对其处理器进行休眠处理。其中,休眠处理模块608包括:
时间生成子模块6081,用于查询所述标识对应的所述处理器休眠时间,生成小于休眠时间的等待时间;
显屏监听子模块6082,用于运行亮屏进程,以监听所述视联网终端的灭屏操作;
计时子模块6083,用于在所述视联网终端处于灭屏状态时,启动实时时钟,用于计时等待时间;
显屏唤醒子模块6084,用于若所述计时等待时间完成,则执行亮屏操作,由灭屏状态进入亮屏状态,以使所述处理器保持运行,进而保持所述长连接。
基于同一发明构思,本发明另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。
基于同一发明构思,本发明另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
Claims (10)
1.一种基于视联网的消息推送方法,其特征在于,应用于视联网终端,所述方法包括:
向视联网服务器发送长连接建立请求,所述长连接建立请求携带所述视联网终端的标识;
接收所述视联网服务器发送的长连接建立响应,与所述视联网服务器建立长连接,该长连接对应于所述视联网终端的标识;
接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息;
所述方法还包括:
所述视联网终端针对其处理器进行休眠处理,具体包括:
查询所述标识对应的所述处理器休眠时间,生成小于休眠时间的等待时间;
运行亮屏进程,以监听所述视联网终端的灭屏操作;
在所述视联网终端处于灭屏状态时,启动实时时钟,用于计时等待时间;
若所述计时等待时间完成,则执行亮屏操作,由灭屏状态进入亮屏状态,以使所述处理器保持运行,进而保持所述长连接。
2.根据权利要求1所述的方法,其特征在于,所述向视联网服务器发送长连接建立请求的步骤前,还包括:
所述视联网终端建立回调监听,所述回调监听用于监听所述长连接的各种状态。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述视联网终端与所述视联网服务器定义所述消息的字段格式。
4.根据权利要求1所述的方法,其特征在于,所述接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息的步骤后,还包括:
解析接收到的消息,判断所述消息的类型;
根据所述类型调用视联网终端中不同功能模块,解析所述消息中的其他字段。
5.一种基于视联网的消息推送装置,其特征在于,所述装置应用于视联网终端,包括:
长连接建立请求模块,用于向视联网服务器发送长连接建立请求,所述长连接建立请求携带所述视联网终端的标识;
响应接收模块,用于接收所述视联网服务器发送的长连接建立响应,与所述视联网服务器建立长连接,该长连接对应于所述视联网终端的标识;
消息推送模块,用于接收所述视联网服务器通过所述长连接向所述视联网终端推送的消息;
所述装置还包括:
休眠处理模块,用于所述视联网终端针对其处理器进行休眠处理,所述休眠处理模块具体包括:
时间生成子模块,用于查询所述标识对应的所述处理器休眠时间,生成小于休眠时间的等待时间;
显屏监听子模块,用于运行亮屏进程,以监听所述视联网终端的灭屏操作;
计时子模块,用于在所述视联网终端处于灭屏状态时,启动实时时钟,用于计时等待时间;
显屏唤醒子模块,用于若所述计时等待时间完成,则执行亮屏操作,由灭屏状态进入亮屏状态,以使所述处理器保持运行,进而保持所述长连接。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
回调监听模块,用于所述视联网终端建立回调监听,所述回调监听用于监听所述长连接的各种状态。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
字段格式定义模块,用于所述视联网终端与所述视联网服务器定义所述消息的字段格式。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
消息解析模块,用于解析接收到的消息,判断所述消息的类型;
字段解析模块,用于根据所述类型调用视联网终端中不同功能模块,解析所述消息中的其他字段。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4中任一项所述的一种基于视联网的消息推送方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的一种基于视联网的消息推送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910804031.5A CN110661848B (zh) | 2019-08-28 | 2019-08-28 | 一种基于视联网的消息推送方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910804031.5A CN110661848B (zh) | 2019-08-28 | 2019-08-28 | 一种基于视联网的消息推送方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110661848A CN110661848A (zh) | 2020-01-07 |
CN110661848B true CN110661848B (zh) | 2022-02-22 |
Family
ID=69036547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910804031.5A Active CN110661848B (zh) | 2019-08-28 | 2019-08-28 | 一种基于视联网的消息推送方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110661848B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111355916B (zh) * | 2020-02-17 | 2022-07-22 | 视联动力信息技术股份有限公司 | 建立视联网通信连接的方法、装置、设备及存储介质 |
CN114915651B (zh) * | 2021-02-09 | 2023-09-26 | 武汉斗鱼网络科技有限公司 | WebSocket的管理方法、装置、电子设备及存储介质 |
CN115297196B (zh) * | 2022-07-15 | 2024-03-15 | 青岛民航凯亚系统集成有限公司 | 机场多协议数据交换系统、方法、系统及其存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297470A (zh) * | 2012-02-29 | 2013-09-11 | 中国移动通信集团公司 | 永远在线业务的处理方法、应用服务器、用户终端和系统 |
CN103874035A (zh) * | 2012-12-13 | 2014-06-18 | 中国移动通信集团公司 | 一种移动终端消息推送方法及设备 |
CN107070769A (zh) * | 2016-11-29 | 2017-08-18 | 努比亚技术有限公司 | 一种获取服务端推送消息的装置及方法 |
CN109660584A (zh) * | 2017-10-12 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 一种客户端与服务器建立长连接的方法及通信方法与通信系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9992739B2 (en) * | 2013-06-28 | 2018-06-05 | Telefonaktiebolaget L M Ericsson (Publ) | Proactive radio resource allocation |
-
2019
- 2019-08-28 CN CN201910804031.5A patent/CN110661848B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297470A (zh) * | 2012-02-29 | 2013-09-11 | 中国移动通信集团公司 | 永远在线业务的处理方法、应用服务器、用户终端和系统 |
CN103874035A (zh) * | 2012-12-13 | 2014-06-18 | 中国移动通信集团公司 | 一种移动终端消息推送方法及设备 |
CN107070769A (zh) * | 2016-11-29 | 2017-08-18 | 努比亚技术有限公司 | 一种获取服务端推送消息的装置及方法 |
CN109660584A (zh) * | 2017-10-12 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 一种客户端与服务器建立长连接的方法及通信方法与通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110661848A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110149262B (zh) | 一种信令报文的处理方法和装置、及存储介质 | |
CN109167960B (zh) | 一种视频流数据的处理方法和系统 | |
CN110475090B (zh) | 一种会议控制的方法和系统 | |
CN110661848B (zh) | 一种基于视联网的消息推送方法、装置、设备和介质 | |
CN109547731B (zh) | 一种视频会议的展示方法和系统 | |
CN110191315B (zh) | 一种基于视联网的监控查看方法和装置 | |
CN109218093B (zh) | 一种获取告警的方法和系统 | |
CN110381284B (zh) | 一种切换会议的方法、装置、系统、设备及可读存储介质 | |
CN110113558B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN110737519A (zh) | 一种主题切换方法及装置 | |
CN111654659B (zh) | 一种会议控制方法和装置 | |
CN110417792B (zh) | 通信方法、系统、网关设备及存储介质 | |
CN110891156B (zh) | 一种监控摄像头的入会方法及装置 | |
CN110519549B (zh) | 一种会议终端列表获取方法和系统 | |
CN110198384B (zh) | 一种基于视联网的通讯方法和中转服务器 | |
CN110572367B (zh) | 修改终端名称的方法、系统、服务器、设备及存储介质 | |
CN110098993B (zh) | 一种信令报文的处理方法和装置 | |
CN110225079B (zh) | 一种设备控制方法、装置及可读存储介质 | |
CN109788231B (zh) | 可视电话业务处理方法和装置 | |
CN109450995B (zh) | 一种服务器端数据的获取方法和系统 | |
CN109495709B (zh) | 一种视联网管理系统和方法 | |
CN110730086B (zh) | 一种日志信息的输出方法和装置 | |
CN110475088B (zh) | 一种用户登录的方法和装置 | |
CN112346799A (zh) | 一种终端控制方法、装置、电子设备及存储介质 | |
CN110636132A (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 |