CN108881395A - 消息推送方法、设备、消息管理器及计算机可读存储介质 - Google Patents
消息推送方法、设备、消息管理器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108881395A CN108881395A CN201810500077.3A CN201810500077A CN108881395A CN 108881395 A CN108881395 A CN 108881395A CN 201810500077 A CN201810500077 A CN 201810500077A CN 108881395 A CN108881395 A CN 108881395A
- Authority
- CN
- China
- Prior art keywords
- message
- subscription
- server
- channel
- subscribed
- 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
Links
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/50—Network services
- H04L67/55—Push-based network services
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Abstract
本发明提供了一种消息推送方法、设备、消息管理器及计算机可读存储介质,其中消息推送方法包括:建立与服务器的消息通道;通过消息通道,接收服务器推送的任意被订阅对象的订阅消息;将订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象,其中订阅对象为Web即时通信页面。在本发明的技术方案中,多个Web即时通信页面可以共享与服务器的消息通道及被订阅对象的订阅消息,实现了Web即时通信页面中消息通道和消息数据的共享,降低了客户端与服务器中的资源消耗。
Description
技术领域
本发明涉及信息处理领域,特别涉及一种消息推送方法、设备、消息管理器及计算机可读存储介质。
背景技术
在web IM(World Wide Web Instant Messaging,全球广域网即时通讯)中,消息推送是一个常规的需求。考虑到浏览器的差异,通常会使用HTTP(HyperText TransferProtocol,超文本传输协议)长连接来实现。而长连接是非常耗费服务器端资源的,如果每打开一个页面都进行长连接,无疑会大量增加服务器成本,同时浏览器对于每个域名的连接数是有限制的,多个连接不但消耗服务器资源也占用了客户端资源,而且同样的消息在多个页面同时推送是重复工作,属于资源浪费。
现有技术中,为了解决每打开一个页面都进行长连接的问题,可以在支持websocket的高级浏览器中使用websocket,在其他浏览器中使用HTTP长连接,websocket可以在一定程度上降低资源消耗。其中websocket是HTML5(超文本标记语言HyperTextMarkup Language的第5次重大修改版本)开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在websocket API(Application Programming Interface,应用程序接口)中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以数据互相传送。但是目前还有很多浏览器不支持websocket,因此上述方案并不能有效的解决在web IM中消息推送时,客户端和服务器中资源消耗大的问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种解决上述问题的消息推送方法、设备、消息管理器及计算机可读存储介质。
依据本发明实施例的一个方面,提供了一种消息推送方法,应用于消息管理器,包括:
建立与服务器的消息通道;
通过所述消息通道,接收所述服务器推送的任意被订阅对象的订阅消息;
将所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象;所述订阅对象为Web即时通信页面。
可选的,在本发明实施例所述的消息推送方法中,所述建立与服务器的消息通道,包括:
在浏览器的所述Web即时通信页面被加载后,检测当前是否已经与服务器建立了消息通道,若检测结果为否,则建立与所述服务器的消息通道。
可选的,在本发明实施例所述的消息推送方法中,在接收到所述服务器推送的任意被订阅对象的订阅消息时,还包括:将所述订阅消息存入本地存储器;
所述将所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象,包括:
定时在所述本地存储器中读取所述订阅消息,并将读取的所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象。
可选的,在本发明实施例所述的消息推送方法中,所述定时在所述本地存储器中读取所述订阅消息,并将读取的所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象,包括:
定时在所述本地存储器中读取所述订阅消息;
确定发送该订阅消息的被订阅对象;
以所述被订阅对象为索引,在所述本地存储器在先存储的订阅关系中,查找与该被订阅对象具有订阅关系的所有订阅对象;
将读取的所述订阅消息回调给查找到的所有订阅对象。
可选的,在本发明实施例所述的消息推送方法中,所述本地存储器按照localstorage持久化存储方案或userData持久化存储方案进行数据存储。
可选的,在本发明实施例所述的消息推送方法中,在所有的Web即时通信页面被关闭之前,保持所述消息通道处于连接状态。
可选的,在本发明实施例所述的消息推送方法中,所述在所有的Web即时通信页面被关闭之前,保持所述消息通道处于连接状态,包括:在浏览器中所有的Web即时通信页面被关闭之前,通过定时更新所述消息通道的心跳时间戳,使所述消息通道处于连接状态。
可选的,在本发明实施例所述的消息推送方法中,所述建立与服务器的消息通道,包括:通过超文本传输协议HTTP长连接协议或websocket连接协议,建立与服务器的消息通道。
依据本发明实施例的另一个方面,提供了一种消息管理器,包括建立消息通道模块、接收订阅消息模块、订阅消息回调模块;
所述建立消息通道模块,用于建立与服务器的消息通道;
所述接收订阅消息模块,用于通过所述消息通道,接收所述服务器推送的任意被订阅对象的订阅消息;
所述订阅消息回调模块,用于将所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象;所述订阅对象为Web即时通信页面。
可选的,在本发明实施例所述的消息管理器中,所述建立消息通道模块具体用于:
在浏览器的所述Web即时通信页面被加载后,检测当前是否已经与服务器建立了消息通道,若检测结果为否,则建立与所述服务器的消息通道。
可选的,在本发明实施例所述的消息管理器中,所述接收订阅消息模块具体用于:在接收到所述服务器推送的任意被订阅对象的订阅消息时,将所述订阅消息存入本地存储器;
所述订阅消息回调模块具体用于:定时在所述本地存储器中读取所述订阅消息,并将读取的所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象。
可选的,在本发明实施例所述的消息管理器中,所述订阅消息回调模块具体用于:
定时在所述本地存储器中读取所述订阅消息;
确定发送该订阅消息的被订阅对象;
以所述被订阅对象为索引,在所述本地存储器在先存储的订阅关系中,查找与该被订阅对象具有订阅关系的所有订阅对象;
将读取的所述订阅消息回调给查找到的所有订阅对象。
可选的,在本发明实施例所述的消息管理器中,所述本地存储器按照localstorage持久化存储方案或userData持久化存储方案进行数据存储。
可选的,在本发明实施例所述的消息管理器中,所述建立消息通道模块还用于:在所有的Web即时通信页面被关闭之前,保持所述消息通道处于连接状态。
可选的,在本发明实施例所述的消息管理器中,所述建立消息通道模块具体用于:在浏览器中所有的Web即时通信页面被关闭之前,通过定时更新所述消息通道的心跳时间戳,使所述消息通道处于连接状态。
可选的,在本发明实施例所述的消息管理器中,所述建立消息通道模块具体用于:通过超文本传输协议HTTP长连接协议或通过websocket连接协议,建立与服务器的消息通道。
依据本发明实施例的第三个方面,提供了一种消息推送设备,所述消息推送设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的消息推送方法的步骤。
依据本发明实施例的第四个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的消息推送方法的步骤。
本发明实施例的有益效果如下:
本发明实施例提供的消息推送方法、消息管理器及计算机可读存储介质,通过与服务器的消息通道可以接收服务器推送的任意被订阅对象的订阅消息,同时能将订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象,即多个Web即时通信页面可以共享与服务器的消息通道及被订阅对象的订阅消息,实现了Web即时通信页面中消息通道和消息数据的共享,降低了客户端与服务器中的资源消耗。
附图说明
图1为本发明第一实施例中消息推送方法的流程示意图;
图2为本发明第二实施例中消息推送方法的流程示意图;
图3为本发明第三实施例中消息推送方法的流程示意图;
图4为本发明第四实施例中消息推送装置的结构示意图;
图5为本发明第五实施例中消息推送设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于唯一限定本发明。
根据本发明的第一实施例,提供了一种消息推送方法,应用于消息管理器。图1为本发明第一实施例中消息推送方法的流程示意图,如图1所示,本发明第一实施例的消息推送方法,包括以下步骤:
S101:建立与服务器的消息通道。即,建立消息管理器与服务器的消息通道。
在本发明的一个具体实施例中,在浏览器的Web即时通信页面被加载后,消息管理器会检测当前是否已经与服务器建立了消息通道,若检测结果为否,则建立消息管理器与服务器的消息通道;若检测结果为是,说明由其他Web即时通信页面加载的触发,消息管理器已经建立了消息通道,无需再建立。本发明实施例中,所述的web即时通信页面为触发运行在浏览器中的即时通信应用程序而加载的即时通信页面。
S102:通过消息通道,接收服务器推送的任意被订阅对象的订阅消息。
本实施例中,订阅对象为Web即时通信页面,被订阅对象为订阅对象发送订阅请求的目标对象。示例的,用户开启Web即时通信页面A向用户B发送消息,则A为订阅对象,B为被订阅对象。
在所述消息通道中能接收服务器推送的任意被订阅对象的订阅消息,也就是说,不管有多少个Web即时通信页面发送请阅请求,也不管被订阅对象有多少个,都能通过消息通道接收到服务器推送的被订阅对象的订阅消息。例如,当浏览器中开启了A、B、C三个Web即时通信页面,其中页面A的被订阅对象为a1,页面B的被订阅对象为b1,页面C的被订阅对象为c1。通过消息通道,可以接收到服务器推送的被订阅对象al、b1、c1的订阅消息。
S103:将订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象;其中订阅对象为Web即时通信页面。
示例的,当Web即时通信页面A、D、E均向al发送订阅请求,则认为A、D、E与al均具有订阅关系。
本实施例中,通过两个示例来说明消息回调:
示例1,假设,页面A的被订阅对象为a1,页面B的被订阅对象为b1,页面C的被订阅对象为c1。通过消息通道,可以接收到服务器推送的被订阅对象al、b1、c1的订阅消息。消息管理器会将被订阅对象al的消息回调给页面A,被订阅对象b1的消息回调给页面B,被订阅对象cl的消息回调给页面C。
示例2:假设,浏览器中开启了A、B、C三个Web即时通信页面,其中页面A的被订阅对象为a1,页面B的被订阅对象为a1,页面C的被订阅对象为c1。通过消息通道,可以接收到服务器推送的被订阅对象al、c1的订阅消息。消息管理器会将被订阅对象al的消息回调给页面A和页面B,将被订阅对象cl的消息回调给页面C。可以说,本发明实施例消息推送在多页面实现共享,极大地降低了客户端和服务端的资源消耗。
本发明第一实施例提供的消息推送方法,通过与服务器的消息通道可以接收服务器推送的任意被订阅对象的订阅消息,同时能将订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象,即多个Web即时通信页面可以共享与服务器的消息通道及被订阅对象的订阅消息,实现了Web即时通信页面中消息通道和消息数据的共享,降低了客户端与服务器中的资源消耗。可以说,本发明实施例通过消息管理器与服务器建立唯一的消息通道,实现了浏览器与消息管理器交互即可实现消息的订阅,屏蔽了各浏览器消息推送机制的不同,为运行在浏览器中的即时通信应用程序提供了简洁的调用接口。
根据本发明的第二实施例,提供了一种消息推送方法,应用于消息管理器。图2为本发明第二实施例中消息推送方法的流程示意图,如图2所示,本发明第二实施例的消息推送方法,包括以下步骤:
S201:建立与服务器的消息通道。即,建立消息管理器与服务器的消息通道。
作为本发明实施例的一种具体实施方式,消息管理器封装了HTTP长连接协议或websocket连接协议,使得消息管理器可以通过HTTP长连接协议或websocket连接协议,建立与服务器的消息通道。本实施例,通过对HTTP长连接和websocket的封装,提供一个跨浏览器的消息管理器,用于接收服务器推送的消息并把消息回调给订阅的对象。
利用这种具体实施方式,消息管理器即可以支持HTTP长连接也可支持websocket连接。运行在浏览器中的即时通信应用程序不再直接与服务器通信,而是通过支持不同连接方式的消息管理器与服务器通信,避免了支持websocket连接的浏览器通过HTTP长连接与服务器通信,影响系统开销的问题。
S202:通过消息通道,接收服务器推送的任意被订阅对象的订阅消息,并将订阅消息存入本地存储器。
作为本发明实施例的一种具体实施方式,在本地存储器中按照localstorage持久化存储方案或userData持久化存储方案进行数据存储。即,通过对localstorage和userData的封装,提供一个跨浏览器的本地存储器,用于key/value的存取,屏蔽了key/value存储在各浏览器上的差异,提供了简洁的调用接口,降低了系统复杂度。
利用这种具体实施方式,本地存储器可以适用于采用localstorage持久化存储方案的浏览器,也可以适用于采用userData持久化存储方案的浏览器。
其中,localStorage为本地存储接口,是HTML5规范中的重要一项,用于在浏览器端持久化数据存储,在同域下多页面可以共享。userData是IE浏览器中独有的持久化存储方案,在同域下多页面可以共享。
S203:定时在本地存储器中读取订阅消息,并将读取的订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象,其中订阅对象为Web即时通信页面。
作为本发明实施例的一种具体实施方式,定时在本地存储器中读取订阅消息,并将读取的订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象,具体包括以下步骤:
步骤1,定时在本地存储器中读取订阅消息;
步骤2,确定发送该订阅消息的被订阅对象;
步骤3,以所述被订阅对象为索引,在本地存储器在先存储的订阅关系中,查找与该被订阅对象具有订阅关系的所有订阅对象;
本实施例中,订阅对象会将订阅请求发送给消息管理器,消息管理器会根据订阅请求确定出订阅对象和被订阅对象,并将二者间的订阅关系存入本地存储器。所以,在收到订阅消息时,可以根据发送订阅消息的被订阅对象找到相应的订阅对象。
步骤4,将读取的订阅消息回调给查找到的所有订阅对象。
本发明实施例中,每个页面都会通过消息管理器订阅新消息,消息管理器定时(比如1秒)读取本地存储器消息,如果有新消息则回调给订阅对象。这样就保证了在任何时候,不管打开多少页面都只有一个消息推送通道,而且能比较及时地收到消息。
在本发明第二实施例提供的消息推送方法中,与服务器的消息通道可以接收服务器推送的任意被订阅对象的订阅消息,运行在浏览器中的即时通信应用程序不再直接与服务器通信,而是通过支持不同连接方式的消息管理器与服务器通信,避免了支持websocket连接的浏览器通过HTTP长连接与服务器通信,影响系统开销的问题;将服务器推送的任意被订阅对象的订阅消息存入本地存储器中,且本地存储器可以适用于采用localstorage持久化存储方案的浏览器,也可以适用于采用userData持久化存储方案的浏览器,不仅实现了消息通道和消息数据的共享,降低了客户端与服务器中的资源消耗,而且进一步扩大了消息推送方法的应用范围。
根据本发明的第三实施例,提供了一种消息推送方法,应用于消息管理器。图3为本发明第三实施例中消息推送方法的流程示意图,如图3所示,本发明第三实施例的消息推送方法,包括以下步骤:
S301:建立与服务器的消息通道,且在所有的Web即时通信页面被关闭之前,保持消息通道处于连接状态。
S302:通过消息通道,接收服务器推送的任意被订阅对象的订阅消息并保存在本地存储器中。
S303:定时在本地存储器中读取订阅消息,并将读取的订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象,其中订阅对象为Web即时通信页面。
本实施例中,在所有的Web即时通信页面被关闭之前,保持消息通道处于连接状态,即,只要浏览器当前有开启的Web即时通信页面未全部关闭,该通道一直处于连接状态,避免多次建立通道引起不必要的资源消耗。
举例来说,在同一浏览器中,打开Web即时通信页面A后,检测到当前还没有建立消息通道,则建立消息通道。而在A未关闭的情况下,又打开了Web即时通信页面B,此时,由于当前已经有了消息通道,则无需再建立。若A关闭,B仍然处于打开状态时,又开启了则Web即时通信页面C,由于此时B仍然处于打开状态,说明消息通道仍然处于连接状态,则在打开C后也无需建立通道。
本发明实施例中,在当前浏览器的Web即时通信页面未全部关闭前,消息管理器保持消息通道处于连接状态的方式包括:在浏览器中只要有Web即时通信页面处于开启状态,消息管理器就会通过定时更新所述消息通道的心跳时间戳,使消息通道处于连接状态。即,通过心跳机制,实现多页面同时只存在一个消息推送通道。
作为一种具体实施方式,可以将消息通道的心跳时间戳存储在本地存储器中。
在具体实现时,Web即时通信页面加载后,消息管理器定时通过本地存储器读取心跳时间戳,此时有两种情况:
1,如果距离当前一定时间(比如5秒)没有更新(例如当消息管理器出现故障导致的心跳时间戳没有更新),说明消息通道处于非连接状态,此时建立消息通道并定时(比如3秒)更新本地存储器中的心跳时间戳,当有消息到来的时候把消息写入本地存储器中。
2,如果距离当前不到一定时间(比如5秒)有更新,说明已经有其他页面开启消息通道了,则不再新开启消息通道。
本发明第三实施例提供的消息推送方法,多个Web即时通信页面可以共享与服务器器的消息通道及被订阅对象的订阅消息,不仅实现了Web即时通信页面中消息通道和消息数据的共享,降低了客户端与服务器中的资源消耗;而且可以通过定时更新所述消息通道的心跳时间戳,使得在所有的Web即时通信页面被关闭之前消息通道处于连接状态,这样就保证了在所有的Web即时通信页面被关闭之前,随时能接收到服务器推送的任意被订阅对象的订阅消息,而且可以避免多次建立通道引起不必要的资源消耗。
本发明的第四实施例,提供了一种消息管理器。图4为本发明第四实施例中消息管理器的结构示意图,如图4所述,本发明第四实施例的消息管理器包括建立消息通道模块40、接收订阅消息模块42、订阅消息回调模块44,以下对各模块进行详细的说明。
所述建立消息通道模块40,用于建立与服务器的消息通道。
作为本发明实施例的一种具体实施方式,所述建立消息通道模块40用于:在浏览器的所述Web即时通信页面被加载后,检测当前是否已经与服务器建立了消息通道,若检测结果为否,则建立与所述服务器的消息通道。
作为本发明实施例的一种具体实施方式,所述建立消息通道模块40用于:通过超文本传输协议HTTP长连接协议或websocket连接协议,建立与服务器的消息通道。即消息管理器封装了HTTP长连接协议或websocket连接协议,使得消息管理器可以通过HTTP长连接协议或websocket连接协议,建立与服务器的消息通道。
也就是说,利用这种具体实施方式,消息管理器即可以支持HTTP长连接也可支持websocket连接。浏览器不再直接与服务器通信,而是通过支持不同连接方式的消息管理器与服务器通信,避免了支持websocket连接的浏览器通过HTTP长连接与服务器通信,影响系统开销的问题。
作为本发明实施例的一种具体实施方式,所述建立消息通道模块40还用于:在所有的Web即时通信页面被关闭之前,保持所述消息通道处于连接状态。利用这种具体实施方式,就保证了在所有的Web即时通信页面被关闭之前,随时能接收到服务器推送的任意被订阅对象的订阅消息,而且可以避免多次建立通道引起不必要的资源消耗。
作为本发明实施例的一种更加具体的实施方式,所述建立消息通道模块40用于:在浏览器中所有的Web即时通信页面被关闭之前,通过定时更新所述消息通道的心跳时间戳,使所述消息通道处于连接状态。
所述接收订阅消息模块42,用于通过所述消息通道,接收所述服务器推送的任意被订阅对象的订阅消息。
作为本发明实施例的一种具体实施方式,所述接收订阅消息模块42用于:在接收到所述服务器推送的任意被订阅对象的订阅消息时,将所述订阅消息存入本地存储器。
作为本发明实施例的一种具体实施方式,所述本地存储器按照localstorage持久化存储方案或userData持久化存储方案进行数据存储。利用这种具体实施方式,本地存储器可以适用于采用localstorage持久化存储方案的浏览器,也可以适用于采用userData持久化存储方案的浏览器。
所述订阅消息回调模块44,用于将所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象,所述订阅对象为Web即时通信页面。
作为本发明实施例的一种具体实施方式,所述订阅消息回调模块44用于:定时在所述本地存储器中读取所述订阅消息,并将读取的所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象。
作为本发明实施例的一种更加具体的实施方式,所述订阅消息回调模块44用于:定时在所述本地存储器中读取所述订阅消息;确定发送该订阅消息的被订阅对象;以所述被订阅对象为索引,在所述本地存储器在先存储的订阅关系中,查找与该被订阅对象具有订阅关系的所有订阅对象;将读取的所述订阅消息回调给查找到的所有订阅对象。
本发明第四实施例提供的消息管理器,通过与服务器的消息通道可以接收服务器推送的任意被订阅对象的订阅消息,同时能将订阅消息回调给与被订阅对象具有订阅关系的所有订阅对象,即多个Web即时通信页面可以共享与服务器器的消息通道及被订阅对象的订阅消息,实现了Web即时通信页面中消息通道和消息数据的共享,降低了客户端与服务器中的资源消耗。
本发明第五实施例,提供了一种消息推送设备。图5为本发明第五实施例中消息推送设备的结构示意图,如图5所示,消息推送设备包括:存储器52、处理器54及存储在所述存储器52上并可在所述处理器54上运行的计算机程序,所述计算机程序被所述处理器54执行时实现如第一实施例至第三实施例所述的消息推送方法的步骤,同时也能起到相同的技术效果,在此不再赘述。
本发明第六实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一实施例至第三实施例所述的消息推送方法的步骤,同时也能起到相同的技术效果,在此不再赘述。其中,计算机可读存储介质包括但不限于为:ROM、RAM、磁盘或光盘等。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种消息推送方法,其特征在于,应用于消息管理器,包括:
建立与服务器的消息通道;
通过所述消息通道,接收所述服务器推送的任意被订阅对象的订阅消息;
将所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象;所述订阅对象为Web即时通信页面。
2.如权利要求1所述的方法,其特征在于,所述建立与服务器的消息通道,包括:
在浏览器的所述Web即时通信页面被加载后,检测当前是否已经与服务器建立了消息通道,若检测结果为否,则建立与所述服务器的消息通道。
3.如权利要求1所述的方法,其特征在于,在接收到所述服务器推送的任意被订阅对象的订阅消息时,还包括:将所述订阅消息存入本地存储器;
所述将所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象,包括:
定时在所述本地存储器中读取所述订阅消息,并将读取的所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象。
4.如权利要求3所述的方法,其特征在于,所述定时在所述本地存储器中读取所述订阅消息,并将读取的所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象,包括:
定时在所述本地存储器中读取所述订阅消息;
确定发送该订阅消息的被订阅对象;
以所述被订阅对象为索引,在所述本地存储器在先存储的订阅关系中,查找与该被订阅对象具有订阅关系的所有订阅对象;
将读取的所述订阅消息回调给查找到的所有订阅对象。
5.如权利要求3或4所述的方法,其特征在于,所述本地存储器按照localstorage持久化存储方案或userData持久化存储方案进行数据存储。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:在所有的Web即时通信页面被关闭之前,保持所述消息通道处于连接状态。
7.如权利要求6所述的方法,其特征在于,所述在所有的Web即时通信页面被关闭之前,保持所述消息通道处于连接状态,包括:
在浏览器中所有的Web即时通信页面被关闭之前,通过定时更新所述消息通道的心跳时间戳,使所述消息通道处于连接状态。
8.如权利要求1至4、6、7任意一项所述的方法,其特征在于,所述建立与服务器的消息通道,包括:
通过超文本传输协议HTTP长连接协议或websocket连接协议,建立与服务器的消息通道。
9.一种消息管理器,其特征在于,包括建立消息通道模块、接收订阅消息模块、订阅消息回调模块;
所述建立消息通道模块,用于建立与服务器的消息通道;
所述接收订阅消息模块,用于通过所述消息通道,接收所述服务器推送的任意被订阅对象的订阅消息;
所述订阅消息回调模块,用于将所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象;所述订阅对象为Web即时通信页面。
10.如权利要求9所述的消息管理器,其特征在于,所述建立消息通道模块具体用于:
在浏览器的所述Web即时通信页面被加载后,检测当前是否已经与服务器建立了消息通道,若检测结果为否,则建立与所述服务器的消息通道。
11.如权利要求9所述的消息管理器,其特征在于,所述接收订阅消息模块具体用于:在接收到所述服务器推送的任意被订阅对象的订阅消息时,将所述订阅消息存入本地存储器;
所述订阅消息回调模块具体用于:定时在所述本地存储器中读取所述订阅消息,并将读取的所述订阅消息回调给与所述被订阅对象具有订阅关系的所有订阅对象。
12.如权利要求11所述的消息管理器,其特征在于,所述订阅消息回调模块具体用于:
定时在所述本地存储器中读取所述订阅消息;
确定发送该订阅消息的被订阅对象;
以所述被订阅对象为索引,在所述本地存储器在先存储的订阅关系中,查找与该被订阅对象具有订阅关系的所有订阅对象;
将读取的所述订阅消息回调给查找到的所有订阅对象。
13.如权利要求11或12所述的消息管理器,其特征在于,所述本地存储器按照localstorage持久化存储方案或userData持久化存储方案进行数据存储。
14.如权利要求9所述的消息管理器,其特征在于,所述建立消息通道模块还用于:在所有的Web即时通信页面被关闭之前,保持所述消息通道处于连接状态。
15.如权利要求14所述的消息管理器,其特征在于,所述建立消息通道模块具体用于:在浏览器中所有的Web即时通信页面被关闭之前,通过定时更新所述消息通道的心跳时间戳,使所述消息通道处于连接状态。
16.如权利要求9至12、14、15任意一项所述的消息管理器,其特征在于,所述建立消息通道模块具体用于:
通过超文本传输协议HTTP长连接协议或websocket连接协议,建立与服务器的消息通道。
17.一种消息推送设备,其特征在于,所述消息推送设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1~8任一项所述的消息推送方法的步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~8中任一项所述的消息推送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810500077.3A CN108881395B (zh) | 2018-05-23 | 2018-05-23 | 消息推送方法、设备、消息管理器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810500077.3A CN108881395B (zh) | 2018-05-23 | 2018-05-23 | 消息推送方法、设备、消息管理器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108881395A true CN108881395A (zh) | 2018-11-23 |
CN108881395B CN108881395B (zh) | 2021-11-23 |
Family
ID=64332982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810500077.3A Active CN108881395B (zh) | 2018-05-23 | 2018-05-23 | 消息推送方法、设备、消息管理器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108881395B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633443A (zh) * | 2019-08-30 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 一种页内数据通信的方法、装置、设备和介质 |
CN112507193A (zh) * | 2020-10-30 | 2021-03-16 | 长沙市到家悠享网络科技有限公司 | 数据更新方法、装置、设备和存储介质 |
CN114553949A (zh) * | 2022-02-15 | 2022-05-27 | 北京京东乾石科技有限公司 | 一种页面消息的推送方法和装置 |
WO2024001213A1 (zh) * | 2022-06-29 | 2024-01-04 | 中兴通讯股份有限公司 | 消息处理方法、发布端、订阅端及计算机可读存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146058A (zh) * | 2007-11-13 | 2008-03-19 | 北京中搜在线软件有限公司 | 互联网即时信息的共享订阅系统及共享订阅方法 |
CN101160880A (zh) * | 2005-04-15 | 2008-04-09 | 法国电信公司 | 通信设备与方法 |
EP1933530A2 (en) * | 2006-12-11 | 2008-06-18 | Realcom, INC | Information distribution system, information distribution apparatus and information distribution method |
CN101378403A (zh) * | 2008-07-02 | 2009-03-04 | 北京航空航天大学 | 一种基于集合的资源通知处理系统及处理方法 |
CN101969469A (zh) * | 2010-10-25 | 2011-02-09 | 华为技术有限公司 | 电信能力开放中的回调处理方法及装置 |
CN102035893A (zh) * | 2010-12-23 | 2011-04-27 | 中国农业银行股份有限公司 | 一种服务器主动推送数据的方法和系统 |
CN102710798A (zh) * | 2012-06-29 | 2012-10-03 | 百度在线网络技术(北京)有限公司 | 基于实时通信的浏览器扩展服务提供系统和方法 |
CN102904962A (zh) * | 2012-10-23 | 2013-01-30 | 深圳市汇智集信息科技有限公司 | 消息推送系统及其消息推送的方法 |
CN103297453A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 实现即时通讯的方法、浏览器端和系统 |
CN103678549A (zh) * | 2013-12-04 | 2014-03-26 | 新浪网技术(中国)有限公司 | 网页页面数据共享方法和装置 |
CN103916442A (zh) * | 2013-01-07 | 2014-07-09 | 阿里巴巴集团控股有限公司 | 消息推送实现方法、移动终端及消息推送系统 |
CN105357286A (zh) * | 2015-10-20 | 2016-02-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Web的实时消息定向推送方法 |
CN106850750A (zh) * | 2016-12-26 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时推送信息的方法和装置 |
CN106850745A (zh) * | 2016-12-23 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时同步方法和装置 |
-
2018
- 2018-05-23 CN CN201810500077.3A patent/CN108881395B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101160880A (zh) * | 2005-04-15 | 2008-04-09 | 法国电信公司 | 通信设备与方法 |
EP1933530A2 (en) * | 2006-12-11 | 2008-06-18 | Realcom, INC | Information distribution system, information distribution apparatus and information distribution method |
CN101146058A (zh) * | 2007-11-13 | 2008-03-19 | 北京中搜在线软件有限公司 | 互联网即时信息的共享订阅系统及共享订阅方法 |
CN101378403A (zh) * | 2008-07-02 | 2009-03-04 | 北京航空航天大学 | 一种基于集合的资源通知处理系统及处理方法 |
CN101969469A (zh) * | 2010-10-25 | 2011-02-09 | 华为技术有限公司 | 电信能力开放中的回调处理方法及装置 |
CN102035893A (zh) * | 2010-12-23 | 2011-04-27 | 中国农业银行股份有限公司 | 一种服务器主动推送数据的方法和系统 |
CN103297453A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 实现即时通讯的方法、浏览器端和系统 |
CN102710798A (zh) * | 2012-06-29 | 2012-10-03 | 百度在线网络技术(北京)有限公司 | 基于实时通信的浏览器扩展服务提供系统和方法 |
CN102904962A (zh) * | 2012-10-23 | 2013-01-30 | 深圳市汇智集信息科技有限公司 | 消息推送系统及其消息推送的方法 |
CN103916442A (zh) * | 2013-01-07 | 2014-07-09 | 阿里巴巴集团控股有限公司 | 消息推送实现方法、移动终端及消息推送系统 |
CN103678549A (zh) * | 2013-12-04 | 2014-03-26 | 新浪网技术(中国)有限公司 | 网页页面数据共享方法和装置 |
CN105357286A (zh) * | 2015-10-20 | 2016-02-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Web的实时消息定向推送方法 |
CN106850745A (zh) * | 2016-12-23 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时同步方法和装置 |
CN106850750A (zh) * | 2016-12-26 | 2017-06-13 | 北京五八信息技术有限公司 | 一种实时推送信息的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633443A (zh) * | 2019-08-30 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 一种页内数据通信的方法、装置、设备和介质 |
CN110633443B (zh) * | 2019-08-30 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 一种页内数据通信的方法、装置、设备和介质 |
CN112507193A (zh) * | 2020-10-30 | 2021-03-16 | 长沙市到家悠享网络科技有限公司 | 数据更新方法、装置、设备和存储介质 |
CN114553949A (zh) * | 2022-02-15 | 2022-05-27 | 北京京东乾石科技有限公司 | 一种页面消息的推送方法和装置 |
WO2024001213A1 (zh) * | 2022-06-29 | 2024-01-04 | 中兴通讯股份有限公司 | 消息处理方法、发布端、订阅端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108881395B (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881395A (zh) | 消息推送方法、设备、消息管理器及计算机可读存储介质 | |
US8977673B2 (en) | Information on availability of services provided by publish-subscribe service | |
EP3117590B1 (en) | Computer system to support failover in an event stream processing system | |
CN105446750B (zh) | WebApp启动运行、生成镜像文件的方法和装置 | |
US20110078231A1 (en) | Method and apparatus for providing device compatibility information | |
EP2492860B1 (en) | Forwarding data from server to device | |
CN110351323A (zh) | 一种应用系统的参数管理方法和装置 | |
CN106230978A (zh) | 分布式缓存同步方法、装置及系统 | |
CN109783151B (zh) | 规则变更的方法和装置 | |
US9871848B1 (en) | Integration engine for communications between source and target applications | |
CN102387172A (zh) | 用于为移动设备提供或获取网络资源的内容的方法和装置 | |
Wingerath et al. | Speed Kit: a polyglot & GDPR-compliant approach for caching personalized content | |
US7738866B2 (en) | System and method of waste management | |
US7912945B2 (en) | Exchange of management information via application messages | |
CN110019539A (zh) | 一种数据仓库的数据同步的方法和装置 | |
US20090119363A1 (en) | Web sharing system, client device, and web sharing method used for the same | |
CN110209964A (zh) | 一种页面显示方法、装置及设备 | |
KR20060069369A (ko) | 알에스에스를 이용한 다자간 통신시스템 및 그 방법 | |
CN112187887A (zh) | 用于多页面的网页实时通信方法、装置、电子设备 | |
US20170155733A1 (en) | Predictively caching transaction without breaking integrity of the transaction | |
CN105871659A (zh) | 新增服务器的监控方法及装置 | |
US20100332604A1 (en) | Message selector-chaining | |
US11323368B1 (en) | System and method for web service atomic transaction (WS-AT) affinity routing | |
CN113296762A (zh) | 页面嵌入方法、装置、存储介质及电子设备 | |
CN110290202A (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 |