CN112612985A - 基于WebSocket的多用户和多类型消息的推送系统及方法 - Google Patents
基于WebSocket的多用户和多类型消息的推送系统及方法 Download PDFInfo
- Publication number
- CN112612985A CN112612985A CN202011556802.2A CN202011556802A CN112612985A CN 112612985 A CN112612985 A CN 112612985A CN 202011556802 A CN202011556802 A CN 202011556802A CN 112612985 A CN112612985 A CN 112612985A
- Authority
- CN
- China
- Prior art keywords
- client
- websocket
- login
- subscription
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 18
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 239000002609 medium Substances 0.000 description 9
- 230000006854 communication Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种基于WebSocket的多用户和多类型消息的推送系统及方法,包括:客户端携带登录信息访问网站服务器;网站服务器对登录信息进行验证并生成登录令牌发送到所述客户端;客户端根据登录令牌访问WebSocket服务器;WebSocket服务器解析并处理登录令牌,以获取用户信息,并发送登录状态到所述客户端;WebSocket服务器将用户信息和接收的订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到客户端;WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将设备事件数据发送到对应的客户端;本申请实施例可选择性地订阅设备及设备上传的数据,支持子客户端查看母客户端绑定的设备数据,减少不必要的数据传输,避免接收到无用数据占用带宽和性能。
Description
技术领域
本申请实施例涉及数据推送技术领域,尤其涉及一种基于WebSocket的多用户和多类型消息的推送系统及方法。
背景技术
WebSocket协议是物联网(IOT)系统中用于实现界面显示实时数据动态刷新,它使客户端和服务端的数据交换变得简单,允许服务器主动向客户端推送数据,只需完成一次握手,两者就可以创建持久性连接,并进行双向数据传输。
现有的WebSocket协议只是定义了通信方式,正常使用情况下每个登录用户可以查看当前与当前登录用户创建、绑定设备的实时数据;登录用户被动接收设备全部数据;现有的通信方式可以满足一般的需求,但是在物联网(IOT)中,系统中包含有子用户管理的支持时,子用户无法直接订阅到主用户关联的设备数据;当较多设备、频繁上传数据时,WebSocket连接用户只能被动接收所有数据,导致收到过多无用数据,占用带宽和性能。
发明内容
本申请实施例提供一种基于WebSocket的多用户和多类型消息的推送系统及方法,以解决现有技术中WebSocket连接用户只能被动接收所有数据,导致收到过多无用数据,占用带宽和性能的问题。
在第一方面,本申请实施例提供了一种基于WebSocket的多用户和多类型消息的推送系统,包括:客户端、网站服务器、WebSocket服务器和设备;
所述客户端用于携带登录信息访问所述网站服务器;
所述网站服务器用于对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端;
所述客户端还用于根据所述登录令牌访问所述WebSocket服务器;
所述WebSocket服务器用于解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端;
所述客户端还用于发送订阅信息到所述WebSocket服务器,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端;
所述WebSocket服务器还用于接收到所述设备上传的设备事件数据时,根据所述订阅关系表将所述设备事件数据发送到对应的客户端。
在第二方面,本申请实施例提供了一种基于WebSocket的多用户和多类型消息的推送方法,所述方法包括以下步骤:
客户端携带登录信息访问网站服务器;
所述网站服务器对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端;
所述客户端根据所述登录令牌访问WebSocket服务器;
所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端;
所述客户端发送订阅信息到所述WebSocket服务器,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端;
当所述WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将所述设备事件数据发送到对应的客户端。
进一步的,所述网站服务器对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端,包括:
所述登录信息包括用户名和用户类型;
所述网站服务器对所述用户名和所述用户类型进行验证,采用Nodejs模块对所述登录信息进行加密生成登录令牌,并将所述登录令牌发送到所述客户端。
进一步的,所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端,包括:
所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,若解析成功,则发送登录成功状态到所述客户端;若解析失败,则发送登录失败状态到所述客户端。
进一步的,所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,若解析成功,则发送登录成功状态到所述客户端,包括:
所述WebSocket服务器解析所述登录令牌后得到所述登录信息,将所述登录信息存储在Wss连接对象中,将所述客户端存储到Map对象中,缓存对应的键值,获得用户信息,并发送登录成功状态到客户端。
进一步的,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端,包括:
所述WebSocket服务器判断所述订阅信息是否与存储的设备信息相对应;
若相对应,则将所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅成功状态到所述客户端;
若不相对应,则发送订阅失败状态到所述客户端。
进一步的,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅成功状态到所述客户端,包括:
所述订阅信息包括设备列表和事件类型;
所述WebSocket服务器将所述客户端的Wss连接对象、设备列表和事件类型生成订阅关系表存储在所述WebSocket服务器的内存数据库,并发送订阅成功状态到所述客户端。
进一步的,所述当所述WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将所述设备事件数据发送到对应的客户端,包括:
当所述WebSocket服务器接收到设备上传的设备事件数据,根据设备列表与Wss连接对象的对应关系,查询所述设备关联的Wss连接对象,发送所述设备事件数据到所述Wss连接对象对应的客户端。
在第三方面,本申请实施例提供了一种计算机设备,包括存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的基于WebSocket的多用户和多类型消息的推送方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的基于WebSocket的多用户和多类型消息的推送方法。
本申请实施例通过网站服务器对客户端生成登录令牌,客户端根据登录令牌登录WebSocket服务器后,WebSocket服务器接收客户端的订阅信息生成订阅关系表,当接收到设备上传的设备事件数据,根据订阅关系表将设备事件数据发送到对应的客户端;从而可选择性地订阅设备及设备上传的数据,支持子客户端查看母客户端绑定的设备数据,减少不必要的数据传输,避免接收到无用数据占用带宽和性能。
附图说明
图1是本申请实施例提供的现有的客户端与服务器的通信方式;
图2是本申请实施例提供的一种基于WebSocket的多用户和多类型消息的推送系统及方法的示意图;
图3是本申请实施例提供的一种基于WebSocket的多用户和多类型消息的推送方法的流程图;
图4是本申请实施例提供的另一种基于WebSocket的多用户和多类型消息的推送方法的流程图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
WebSocket是基于TCP的应用层协议,用于在C/S架构的应用中实现双向通信,关于WebSocket协议的详细规范和定义参见rfc6455;它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据;在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
物联网(IOT,Internet of things)是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段;顾名思义,物联网就是物物相连的互联网。
Windows SharePoint Services(WSS)是一个用来创建能够实现信息共享和文档协作的Web站点的引擎,从而有助于提高个人和团队的生产力;它是Microsoft WindowsServerTM2003中所提供的信息工作者体系结构的重要组成部分,为Microsoft OfficeSystem和其他的桌面应用程序提供了附加的功能,并能够作为应用程序开发的平台。
本申请提供的基于WebSocket的多用户和多类型消息的推送系统通过网站服务器对客户端生成登录令牌,客户端根据登录令牌登录WebSocket服务器后,WebSocket服务器接收客户端的订阅信息生成订阅关系表,当接收到设备上传的设备事件数据,根据订阅关系表将设备事件数据发送到对应的客户端;从而可选择性地订阅设备及设备上传的数据,支持子客户端查看母客户端绑定的设备数据,减少不必要的数据传输,避免接收到无用数据占用带宽和性能。而现有的WebSocket协议只是定义了通信方式,正常使用情况下每个登录用户可以查看当前与当前登录用户创建、绑定设备的实时数据;登录用户被动接收设备全部数据;现有的通信方式可以满足一般的需求,但是在物联网(IOT)中,系统中包含有子用户管理的支持时,子用户无法直接订阅到主用户关联的设备数据,请参照图1,用户1通过WebSocket连接服务器,发送用户令牌(token),设备上传数据后服务器根据设备和用户的绑定关系,转发对应设备的全部消息,由用户1创建的子用户2、子用户3无法获取获取用户1关联的设备数据;当较多设备、频繁上传数据时,WebSocket连接用户只能被动接收所有数据,导致收到过多无用数据,占用带宽和性能。
基于此,提供本申请实施例的基于WebSocket的多用户和多类型消息的推送系统,来避免现有技术中WebSocket连接用户只能被动接收所有数据,导致收到过多无用数据,占用带宽和性能的问题。
图2为本申请实施例提供的一种基于WebSocket的多用户和多类型消息的推送系统及方法的示意图。参考图2,该控制系统包括:客户端(Client)、网站服务器(Server)、WebSocket服务器(WsServer)和设备。
其中,客户端连接网站服务器,客户端通过WebSocket协议连接WebSocket服务器,WebSocket服务器与设备连接。
其中,所述客户端用于携带登录信息访问所述网站服务器;所述网站服务器用于对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端;所述客户端还用于根据所述登录令牌访问所述WebSocket服务器;所述WebSocket服务器用于解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端;所述客户端还用于发送订阅信息到所述WebSocket服务器,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端;所述WebSocket服务器还用于接收到所述设备上传的设备事件数据时,根据所述订阅关系表将所述设备事件数据发送到对应的客户端。
可选的,客户端携带登录信息访问网站服务器,以获得登录令牌;其中,客户端包括母用户客户端和子用户客户端,母用户客户端携带的登录信息包括主户名username及用户类型owner,子用户客户端携带的登录信息包括子用户username及用户类型owner。
可选的,网站服务器接收客户端的登录信息,对登录信息进行验证,验证成功后,使用Nodejs模块针对登录信息根据预设的加密规则进行加密生成登录令牌,其中,母用户客户端和子用户客户端各自生成对应的登录令牌;可以理解的是,对信息进行加密获得令牌的方式有多种,本实施例对此不作限定。
可选的,客户端与WebSocket服务器之间建立WebSocket连接,将登录令牌通过WebSocket连接发送到WebSocket服务器,示例性的,客户端根据登录令牌访问WebSocket服务器格式如下:
{“action”:“login”,“data”:{“token”:“xxxxxxxxxxxx”}}。
可选的,WebSocket服务器解析客户端的登录令牌得到登录信息,对登录信息进行处理获得用户信息,其中,WebSocket服务器根据预设的解密规则解析所述登录令牌,若解析成功,则发送登录成功状态到客户端,若解析失败,则发送登录失败信息到客户端;可以理解的是,本申请实施例对服务器的加密解密规则的方式不作限定。
可选的,客户端登录WebSocket服务器后,发送订阅信息到WebSocket服务器,其中,订阅信息包括订阅的设备列表和事件类型等;示例性的,发送订阅的设备列表、事件类型,数据格式例如:
{“action”:“addListener”,“data”:{“devices”:[{“devtype”:“devtype”,“devid”:“devid”}],“event”:“event”}}
其中,其中data为要订阅的设备列表,event为需要订阅的事件类型。
示例性的,若订阅的设备列表和设备事件与WebSocket服务器存储的设备列表和设备事件不相对应,则订阅失败,发送订阅失败状态到客户端;若订阅的设备列表和设备事件与WebSocket服务器存储的设备列表和设备事件相对应,通过WebSocket服务器将解析令牌得到的用户信息和订阅信息进行结合,生成订阅关系表存储在WebSocket服务器的内存数据库内,并发送订阅成功状态到客户端。
可选的,WebSocket服务器接收到设备上传的设备事件数据,查阅所述订阅关系表,获得与所述设备和设备事件数据相对应的客户端,并将所述设备事件数据发送到该客户端。
图3为本申请实施例提供的一种基于WebSocket的多用户和多类型消息的推送方法的流程图。参考图3,该方法具体包括:
步骤110、客户端携带登录信息访问网站服务器;
具体的,客户端携带登录信息访问网站服务器,以获得登录令牌;其中,客户端包括母用户客户端和子用户客户端,母用户客户端携带的登录信息包括主户名username及用户类型owner,子用户客户端携带的登录信息包括子用户username及用户类型owner。
步骤120、所述网站服务器对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端。
具体的,网站服务器接收客户端的登录信息,对登录信息进行验证,验证成功后,使用Nodejs模块针对登录信息根据预设的加密规则进行加密生成登录令牌,其中,母用户客户端和子用户客户端各自生成对应的登录令牌;可以理解的是,对信息进行加密获得令牌的方式有多种,本实施例对此不作限定。
步骤130、所述客户端根据所述登录令牌访问WebSocket服务器。
具体的,客户端与WebSocket服务器之间建立WebSocket连接,将登录令牌通过WebSocket连接发送到WebSocket服务器,示例性的,客户端根据登录令牌访问WebSocket服务器格式如下:
{“action”:“login”,“data”:{“token”:“xxxxxxxxxxxx”}};
其中,token表示登录令牌。
步骤140、所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端。
具体的,WebSocket服务器解析客户端的登录令牌得到登录信息,对登录信息进行处理获得用户信息,其中,WebSocket服务器根据预设的解密规则解析所述登录令牌,若解析成功,则发送登录成功状态到客户端,若解析失败,则发送登录失败信息到客户端;可以理解的是,本申请实施例对服务器的加密解密规则的方式不作限定。
步骤150、所述客户端发送订阅信息到所述WebSocket服务器,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端。
具体的,客户端登录WebSocket服务器后,发送订阅信息到WebSocket服务器,其中,订阅信息包括订阅的设备列表和事件类型等;示例性的,发送订阅的设备列表、事件类型,数据格式例如:
{“action”:“addListener”,“data”:{“devices”:[{“devtype”:“devtype”,“devid”:“devid”}],“event”:“event”}}
其中,其中data为要订阅的设备列表,event为需要订阅的事件类型。
可选的,若订阅的设备列表和设备事件与WebSocket服务器存储的设备列表和设备事件不相对应,则订阅失败,发送订阅失败状态到客户端;若订阅的设备列表和设备事件与WebSocket服务器存储的设备列表和设备事件相对应,通过WebSocket服务器将解析令牌得到的用户信息和订阅信息进行结合,生成订阅关系表存储在WebSocket服务器的内存数据库内,并发送订阅成功状态到客户端。
步骤160、当所述WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将所述设备事件数据发送到对应的客户端。
具体的,WebSocket服务器接收到设备上传的设备事件数据,查阅所述订阅关系表,获得与所述设备和设备事件数据相对应的客户端,并将所述设备事件数据发送到该客户端。
以上步骤并不是严格按照编号描述的顺序依次执行,其应作为一个整体方案进行理解。
在上述实施例的基础上,图4给出了本申请实施例提供的另一种基于WebSocket的多用户和多类型消息的推送方法的流程图。该基于WebSocket的多用户和多类型消息的推送方法是对上述基于WebSocket的多用户和多类型消息的推送方法的具体化。参考图4,该基于WebSocket的多用户和多类型消息的推送方法包括:
步骤210、所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,若解析成功,则发送登录成功状态到所述客户端;若解析失败,则发送登录失败状态到所述客户端。
具体的,WebSocket服务器接收客户端的登录令牌进行解析和处理获得用户信息,其中,若WebSocket服务器根据服务器存储的加密解密规则对所述登录令牌进行解析成功,则发送登录成功状态到所述客户端;若解析失败,则发送登录失败状态到所述客户端;可以理解的是,本申请实施例对服务器的加密解密规则的方式不作限定。
步骤220、所述WebSocket服务器解析所述登录令牌后得到所述登录信息,将所述登录信息存储在Wss连接对象中,将所述客户端存储到Map对象中,缓存对应的键值,获得用户信息,并发送登录成功状态到客户端。
示例性的,WebSocket服务器将解析登录令牌得到的登录信息中的用户信息存在Wss连接对象中,将用户类型即客户端存储到Map对象中,键值为当前连接的Header中sec-websocket-key字段信息。
步骤230、所述WebSocket服务器判断所述订阅信息是否与存储的设备信息相对应。
示例性的,所述订阅信息包括设备列表和事件类型,所述设备信息包括村的设备列表和事件类型;WebSocket服务器将设备列表与存储的设备列表信息进行对比,若两者相对应,进一步将设备列表对应的事件类型与存储的设备列表对应的事件类型信息进行对比,若两者相对应,则判断所述订阅信息与存储的设备信息相对应。
示例性的,若所述订阅信息与存储的设备信息相对应,则将所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅成功状态到所述客户端;若所述订阅信息与存储的设备信息相对应不相对应,则发送订阅失败状态到所述客户端;请参照图2,订阅关系表包括键值sec-websocket-key、用户类型(owner)、设备类型(devtype)、设备(devid)和设备事件(event)。
步骤240、所述WebSocket服务器将所述客户端的Wss连接对象、设备列表和事件类型生成订阅关系表存储在所述WebSocket服务器的内存数据库,并发送订阅成功状态到所述客户端。
示例性的,若所述订阅信息与存储的设备信息相对应,通过WebSocket服务器将解析令牌得到的用户信息和订阅信息进行结合,生成订阅关系表存储在WebSocket服务器的内存数据库内;其中,所述用户信息存在Wss连接对象中,订阅信息包括设备列表和对应的事件类型;具体的,通过WebSocket服务器将所述客户端的Wss连接对象、设备列表和事件类型进行结合,生成订阅关系表存储在所述WebSocket服务器的内存数据库,即Wss连接对象、设备列表和事件类型三者对应关系的订阅关系表,并发送订阅成功状态到所述客户端。
在上述实施例的基础上,基于WebSocket的多用户和多类型消息的推送方法还可以具体化为:当所述WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将所述设备事件数据发送到对应的客户端,包括:
当所述WebSocket服务器接收到设备上传的设备事件数据,根据设备列表与Wss连接对象的对应关系,查询所述设备关联的Wss连接对象,发送所述设备事件数据到所述Wss连接对象对应的客户端。
示例性的,WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表中的设备列表与Wss连接对象的对应关系,查询所述设备关联的Wss连接对象,通过键值获得Wss连接对象对应的客户端,发送所述设备事件数据到所述Wss连接对象该客户端。
上述,通过网站服务器对客户端生成登录令牌,客户端根据登录令牌登录WebSocket服务器后,WebSocket服务器接收客户端的订阅信息生成订阅关系表,当接收到设备上传的设备事件数据,根据订阅关系表将设备事件数据发送到对应的客户端;从而可选择性地订阅设备及设备上传的数据,支持子客户端查看母客户端绑定的设备数据,减少不必要的数据传输,避免接收到无用数据占用带宽和性能
本申请实施例还提供了一种计算机设备,该计算机设备可集成本申请实施例提供的基于WebSocket的多用户和多类型消息的推送方系统。图5是本申请实施例提供的一种计算机设备的结构示意图。参考图5,该计算机设备包括:输入装置43、输出装置44、存储器42以及一个或多个处理器41;所述存储器42,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如上述实施例提供的基于WebSocket的多用户和多类型消息的推送方法法。其中输入装置43、输出装置44、存储器42和处理器41可以通过总线或者其他方式连接,图5中以通过总线连接为例。
处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于WebSocket的多用户和多类型消息的推送方法。
上述提供的计算机设备可用于执行上述实施例提供的基于MQTT云平台的Modbus通信方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于WebSocket的多用户和多类型消息的推送方法,该基于WebSocket的多用户和多类型消息的推送方法包括:客户端携带登录信息访问网站服务器;所述网站服务器对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端;所述客户端根据所述登录令牌访问WebSocket服务器;所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端;所述客户端发送订阅信息到所述WebSocket服务器,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端;当所述WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将所述设备事件数据发送到对应的客户端。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的基于WebSocket的多用户和多类型消息的推送方法,还可以执行本申请任意实施例所提供的基于WebSocket的多用户和多类型消息的推送方法中的相关操作。
上述实施例中提供的基于WebSocket的多用户和多类型消息的推送系统、存储介质及计算机设备可执行本申请任意实施例所提供的基于WebSocket的多用户和多类型消息的推送方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的基于WebSocket的多用户和多类型消息的推送方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (10)
1.一种基于WebSocket的多用户和多类型消息的推送系统,其特征在于,包括:客户端、网站服务器、WebSocket服务器和设备;
所述客户端用于携带登录信息访问所述网站服务器;
所述网站服务器用于对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端;
所述客户端还用于根据所述登录令牌访问所述WebSocket服务器;
所述WebSocket服务器用于解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端;
所述客户端还用于发送订阅信息到所述WebSocket服务器,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端;
所述WebSocket服务器还用于接收到所述设备上传的设备事件数据时,根据所述订阅关系表将所述设备事件数据发送到对应的客户端。
2.一种基于WebSocket的多用户和多类型消息的推送方法,基于权利要求1所述的基于WebSocket的多用户和多类型消息的推送系统实现,其特征在于,所述方法包括以下步骤:
客户端携带登录信息访问网站服务器;
所述网站服务器对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端;
所述客户端根据所述登录令牌访问WebSocket服务器;
所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端;
所述客户端发送订阅信息到所述WebSocket服务器,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端;
当所述WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将所述设备事件数据发送到对应的客户端。
3.根据权利要求2所述的基于WebSocket的多用户和多类型消息的推送方法,其特征在于,所述网站服务器对所述登录信息进行验证并生成登录令牌,将所述登录令牌发送到所述客户端,包括:
所述登录信息包括用户名和用户类型;
所述网站服务器对所述用户名和所述用户类型进行验证,采用Nodejs模块对所述登录信息进行加密生成登录令牌,并将所述登录令牌发送到所述客户端。
4.根据权利要求2所述的基于WebSocket的多用户和多类型消息的推送方法,其特征在于,所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,并发送登录状态到所述客户端,包括:
所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,若解析成功,则发送登录成功状态到所述客户端;若解析失败,则发送登录失败状态到所述客户端。
5.根据权利要求4所述的基于WebSocket的多用户和多类型消息的推送方法,其特征在于,所述WebSocket服务器解析并处理所述登录令牌,以获取用户信息,若解析成功,则发送登录成功状态到所述客户端,包括:
所述WebSocket服务器解析所述登录令牌后得到所述登录信息,将所述登录信息存储在Wss连接对象中,将所述客户端存储到Map对象中,缓存对应的键值,获得用户信息,并发送登录成功状态到客户端。
6.根据权利要求2所述的基于WebSocket的多用户和多类型消息的推送方法,其特征在于,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅状态到所述客户端,包括:
所述WebSocket服务器判断所述订阅信息是否与存储的设备信息相对应;
若相对应,则将所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅成功状态到所述客户端;
若不相对应,则发送订阅失败状态到所述客户端。
7.根据权利要求5或6任一项所述的基于WebSocket的多用户和多类型消息的推送方法,其特征在于,所述WebSocket服务器将所述用户信息和所述订阅信息生成订阅关系表存储在内存数据库,并发送订阅成功状态到所述客户端,包括:
所述订阅信息包括设备列表和事件类型;
所述WebSocket服务器将所述客户端的Wss连接对象、设备列表和事件类型生成订阅关系表存储在所述WebSocket服务器的内存数据库,并发送订阅成功状态到所述客户端。
8.根据权利要求7所述的基于WebSocket的多用户和多类型消息的推送方法,其特征在于,所述当所述WebSocket服务器接收到设备上传的设备事件数据,根据所述订阅关系表将所述设备事件数据发送到对应的客户端,包括:
当所述WebSocket服务器接收到设备上传的设备事件数据,根据设备列表与Wss连接对象的对应关系,查询所述设备关联的Wss连接对象,发送所述设备事件数据到所述Wss连接对象对应的客户端。
9.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求2-8任一所述的一种基于WebSocket的多用户和多类型消息的推送方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求2-8任一所述的一种基于WebSocket的多用户和多类型消息的推送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011556802.2A CN112612985A (zh) | 2020-12-24 | 2020-12-24 | 基于WebSocket的多用户和多类型消息的推送系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011556802.2A CN112612985A (zh) | 2020-12-24 | 2020-12-24 | 基于WebSocket的多用户和多类型消息的推送系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112612985A true CN112612985A (zh) | 2021-04-06 |
Family
ID=75244958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011556802.2A Pending CN112612985A (zh) | 2020-12-24 | 2020-12-24 | 基于WebSocket的多用户和多类型消息的推送系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612985A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、系统、电子设备和存储介质 |
CN113452759A (zh) * | 2021-06-07 | 2021-09-28 | 武汉市多比特信息科技有限公司 | websocket通信报文的发送方法、接收方法及装置 |
CN114024715A (zh) * | 2021-09-30 | 2022-02-08 | 北京达佳互联信息技术有限公司 | 数据看板的推送方法、装置、系统、电子设备及存储介质 |
CN114124508A (zh) * | 2021-11-16 | 2022-03-01 | 上海浦东发展银行股份有限公司 | 一种应用登录方法及系统 |
CN115514731A (zh) * | 2022-09-22 | 2022-12-23 | 中国农业银行股份有限公司 | 一种消息推送方法、装置、介质及电子设备 |
CN115550432A (zh) * | 2022-10-27 | 2022-12-30 | 浪潮云信息技术股份公司 | 一种动态数据的订阅和推送方法及系统 |
CN116055554A (zh) * | 2023-02-06 | 2023-05-02 | 国电南京自动化股份有限公司 | 一种基于消息机制并应用于数字化业务的通知引擎 |
CN116233233A (zh) * | 2023-03-13 | 2023-06-06 | 霞智科技有限公司 | 一种基于ws协议的后台推送的开发方法和系统 |
CN116319650A (zh) * | 2023-05-22 | 2023-06-23 | 三一海洋重工有限公司 | 港口设备数据的分发方法、装置、系统及集装箱起重机 |
CN116055554B (zh) * | 2023-02-06 | 2024-05-31 | 国电南京自动化股份有限公司 | 一种基于消息机制并应用于数字化业务的通知引擎 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306547A1 (en) * | 2009-05-28 | 2010-12-02 | Fallows John R | System and methods for providing stateless security management for web applications using non-http communications protocols |
WO2012144919A2 (en) * | 2011-04-20 | 2012-10-26 | Ibt Internet Bussiness Technologies - Informática, S.A. | Methods and systems for access to real-time full-duplex web communications platforms |
CN106210099A (zh) * | 2016-07-18 | 2016-12-07 | 珠海格力电器股份有限公司 | 数据处理系统及方法 |
WO2017028804A1 (zh) * | 2015-08-19 | 2017-02-23 | 中兴通讯股份有限公司 | 一种Web实时通信平台鉴权接入方法及装置 |
US20170063946A1 (en) * | 2015-08-31 | 2017-03-02 | Ayla Networks, Inc. | Data streaming service for an internet-of-things platform |
CN107809489A (zh) * | 2017-11-17 | 2018-03-16 | 南京感度信息技术有限责任公司 | 一种基于mqtt协议的消息推送系统 |
CN109286648A (zh) * | 2017-07-21 | 2019-01-29 | 比亚迪股份有限公司 | 数据推送方法、装置、系统和终端设备 |
KR102060319B1 (ko) * | 2018-09-14 | 2019-12-30 | 동명대학교산학협력단 | IoT 플랫폼 서비스 서버 |
CN111371889A (zh) * | 2020-03-03 | 2020-07-03 | 广州致远电子有限公司 | 消息处理方法、装置、物联网系统和存储介质 |
CN111698289A (zh) * | 2020-05-14 | 2020-09-22 | 广东省安心加科技有限公司 | 一种通信连接的控制方法、客户端设备及服务器 |
-
2020
- 2020-12-24 CN CN202011556802.2A patent/CN112612985A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306547A1 (en) * | 2009-05-28 | 2010-12-02 | Fallows John R | System and methods for providing stateless security management for web applications using non-http communications protocols |
WO2012144919A2 (en) * | 2011-04-20 | 2012-10-26 | Ibt Internet Bussiness Technologies - Informática, S.A. | Methods and systems for access to real-time full-duplex web communications platforms |
WO2017028804A1 (zh) * | 2015-08-19 | 2017-02-23 | 中兴通讯股份有限公司 | 一种Web实时通信平台鉴权接入方法及装置 |
US20170063946A1 (en) * | 2015-08-31 | 2017-03-02 | Ayla Networks, Inc. | Data streaming service for an internet-of-things platform |
CN106210099A (zh) * | 2016-07-18 | 2016-12-07 | 珠海格力电器股份有限公司 | 数据处理系统及方法 |
CN109286648A (zh) * | 2017-07-21 | 2019-01-29 | 比亚迪股份有限公司 | 数据推送方法、装置、系统和终端设备 |
CN107809489A (zh) * | 2017-11-17 | 2018-03-16 | 南京感度信息技术有限责任公司 | 一种基于mqtt协议的消息推送系统 |
KR102060319B1 (ko) * | 2018-09-14 | 2019-12-30 | 동명대학교산학협력단 | IoT 플랫폼 서비스 서버 |
CN111371889A (zh) * | 2020-03-03 | 2020-07-03 | 广州致远电子有限公司 | 消息处理方法、装置、物联网系统和存储介质 |
CN111698289A (zh) * | 2020-05-14 | 2020-09-22 | 广东省安心加科技有限公司 | 一种通信连接的控制方法、客户端设备及服务器 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、系统、电子设备和存储介质 |
CN113452759A (zh) * | 2021-06-07 | 2021-09-28 | 武汉市多比特信息科技有限公司 | websocket通信报文的发送方法、接收方法及装置 |
CN114024715A (zh) * | 2021-09-30 | 2022-02-08 | 北京达佳互联信息技术有限公司 | 数据看板的推送方法、装置、系统、电子设备及存储介质 |
CN114124508A (zh) * | 2021-11-16 | 2022-03-01 | 上海浦东发展银行股份有限公司 | 一种应用登录方法及系统 |
CN114124508B (zh) * | 2021-11-16 | 2024-04-19 | 上海浦东发展银行股份有限公司 | 一种应用登录方法及系统 |
CN115514731A (zh) * | 2022-09-22 | 2022-12-23 | 中国农业银行股份有限公司 | 一种消息推送方法、装置、介质及电子设备 |
CN115550432A (zh) * | 2022-10-27 | 2022-12-30 | 浪潮云信息技术股份公司 | 一种动态数据的订阅和推送方法及系统 |
CN116055554A (zh) * | 2023-02-06 | 2023-05-02 | 国电南京自动化股份有限公司 | 一种基于消息机制并应用于数字化业务的通知引擎 |
CN116055554B (zh) * | 2023-02-06 | 2024-05-31 | 国电南京自动化股份有限公司 | 一种基于消息机制并应用于数字化业务的通知引擎 |
CN116233233A (zh) * | 2023-03-13 | 2023-06-06 | 霞智科技有限公司 | 一种基于ws协议的后台推送的开发方法和系统 |
CN116319650A (zh) * | 2023-05-22 | 2023-06-23 | 三一海洋重工有限公司 | 港口设备数据的分发方法、装置、系统及集装箱起重机 |
CN116319650B (zh) * | 2023-05-22 | 2024-01-30 | 三一海洋重工有限公司 | 港口设备数据的分发方法、装置、系统及集装箱起重机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612985A (zh) | 基于WebSocket的多用户和多类型消息的推送系统及方法 | |
CN106657130B (zh) | 一种基于mqtt的访问认证的方法及设备 | |
WO2021004054A1 (zh) | 证书申请方法、装置、终端设备、网关设备和服务器 | |
US10957326B2 (en) | Device identifier dependent operation processing of packet based data communication | |
US11502854B2 (en) | Transparently scalable virtual hardware security module | |
EP3769490B1 (en) | Implementing a blockchain-based web service | |
US9866556B2 (en) | Common internet file system proxy authentication of multiple servers | |
EP3739850A1 (en) | Device identifier dependent operation processing of packet based data communication | |
US20090132713A1 (en) | Single-roundtrip exchange for cross-domain data access | |
US11777914B1 (en) | Virtual cryptographic module with load balancer and cryptographic module fleet | |
EP3028437B1 (en) | Messaging api over http protocol to establish context for data exchange | |
JP2009542140A (ja) | 高速短待ち時間データ通信環境において冗長メッセージ・ストリームを使用する高信頼性メッセージングのための方法、装置、およびプログラム | |
WO2014201931A1 (zh) | 资源处理方法和站点服务器 | |
CN112583834B (zh) | 一种通过网关单点登录的方法和装置 | |
CN113821784A (zh) | 多系统单点登录方法、装置及计算机可读存储介质 | |
CN114416169A (zh) | 基于微前端的数据处理方法、介质、装置和计算设备 | |
WO2016155266A1 (zh) | 虚拟桌面的数据共享方法和装置 | |
CN116170234B (zh) | 一种基于虚拟账号认证的单点登录方法和系统 | |
CN110545320A (zh) | 一种内网数据交互方法及设备 | |
CN112929453B (zh) | 一种共享session数据的方法和装置 | |
US20130024543A1 (en) | Methods for generating multiple responses to a single request message and devices thereof | |
CN115297066B (zh) | 一种资源动态协同方法、装置、服务器及介质 | |
CN114357422A (zh) | 一种基于平台集成登录和管理的实现方法 | |
CN116506136A (zh) | 政务服务的跨域登录认证方法及装置 | |
CN116708027A (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 |