CN116233233A - 一种基于ws协议的后台推送的开发方法和系统 - Google Patents
一种基于ws协议的后台推送的开发方法和系统 Download PDFInfo
- Publication number
- CN116233233A CN116233233A CN202310235015.5A CN202310235015A CN116233233A CN 116233233 A CN116233233 A CN 116233233A CN 202310235015 A CN202310235015 A CN 202310235015A CN 116233233 A CN116233233 A CN 116233233A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- client
- protocol
- background
- 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 42
- 238000011161 development Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 230000001172 regenerating effect Effects 0.000 claims description 2
- 238000004065 wastewater treatment Methods 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000006854 communication Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
Abstract
本发明公开了一种基于ws协议的后台推送的开发方法和系统,涉及智能机器人应用开发领域,针对现有的客户端需要轮询请求接口展示实时数据给后端造成了很大的压力,是一个低效过程的问题,现提出如下方案,其包括服务器,其特征在于,所述服务器用于接收客户端的登录请求,所述服务器将登录请求发送给WS协议,所述WS协议升级完成后通过服务器能够直接将消息发送至客户端,所述客户端发送的地址有两种方式。本发明超生化废水处理装置利用ws协议的特性,通过后台向前端主动推送消息,从而解决TCP慢启动、HTTP的请求只能从前端向后端发起、前端轮询频繁请求导致后端压力太大的问题。
Description
技术领域
本发明涉及智能机器人应用开发领域,尤其涉及一种基于ws协议的后台推送的开发方法和系统。
背景技术
随着物联网、大数据和后台服务的发展,各个领域都在尝试设备智能化、数据可视化的实时展示,在数据传输的过程中,后端往往要接收传感器、智能设备的实时信息上报,也要同时把实时数据展示给用户显示,例如智能机器人领域等,会涉及大量的数据上传,客户端需要轮询请求接口展示实时数据给后端造成了很大的压力,是一个低效的过程;
同时当前技术环境下多数使用的是longpoll和ajax轮询,ajax轮询的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息,longpoll原理跟ajax轮询相似,都是采用轮询的方式,不过采取的是阻塞模型,如果没消息,就一直不返回Response给客户端,直到有消息才返回,返回完之后,客户端再次建立连接,周而复始,从上面可以看出其实这两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的特点,被动性,服务端不能主动联系客户端,只能有客户端发起,ajax轮询需要服务器有很快的处理速度和资源,longpoll需要有很高的并发,也就是说高并发的能力,因此,为了解决此类问题,我们提出了一种基于ws协议的后台推送的开发方法和系统。
发明内容
本发明提出的一种基于ws协议的后台推送的开发方法和系统,解决了客户端需要轮询请求接口展示实时数据给后端造成了很大的压力,是一个低效过程的问题。
为了实现上述目的,本发明采用了如下技术方案:
一种基于ws协议的后台推送的开发方法和系统,包括括服务器,所述服务器用于接收客户端的登录请求,所述服务器将登录请求发送给WS协议,所述WS协议升级完成后通过服务器能够直接将消息发送至客户端。
优选的,所述客户端发送的地址有两种方式,一种通过HTTP协议时直接将其登录信息保存至session内存中,另一种所述客户端的地址被URI访问,所述服务器中WS和HTTP会进行握手升级保存至session中。
优选的,包括如下步骤:
步骤1:数据生产者和后端进行长连接,收到约定的数据结构体,结构体包括数据类型和数据属性;
步骤2:后端根据步骤1约定的数据类型和属性解析接收到的消息并设计接口并封装方法;
步骤3:在后端框架中构建项目,将步骤1获得的数据结构体引入编译环境中,引入步骤2的接口,对需要的数据进行筛选,组装;
步骤4:后端启动ws服务端并设定客户端约定好ws连接地址;
步骤5:后端和客户端约定好发送消息的数据结构和数据类型,在页面需要实时数据推送的时候打开ws连接,连接到步骤4约定好的地址中;
步骤6:后端经过身份令牌验证确定是本系统用户,保存用户连接session到内存中,在收到设备消息且用户端保持连接的状态下以约定的数据结构向客户端推送消息。
优选的,所述步骤1具体为:后台收到IOT上传的数据,然后将数据转换为能够编程的数据结果对象,其数据结果对象包括:类型和键值属性。
优选的,所述步骤5和步骤6具体为:在后台系统里,根据获得的数据结构对象,设计封装前端需要的数据对象结构,根据连入后台的前端的session推送给在线的前端设备。
优选的,所述服务器中通过客户端的输入地址进行WS升级,当客户端输入地址传送至服务器中时,通过服务器对地址进行辨别,当地址为/WS时URI被访问,那么其服务器就会对WS进行升级,升级完成后服务器就会通过WS进行发送消息。
优选的,处理HTTP请求为:
所述服务器收到的地址为/WS的URI时,其HttpRequestHandler将调用FullHttp-Request对象上的retain()方法,并且能够通过调用fireChannelRead(msg)的方法将它转发给下一个ChannelInHandlr,用retain()方法是因为调用ChannelRead()方法完成的时候,将它调用FullHttpRequest对象上的retain()方法释放其资源。
优选的,所述步骤6具体为:先获取客户端的用户登录的ID,然后根据用于的ID在所在的session内存中找到信息内容,然后通过WS将信息内容的申请发送至服务器中,通过服务器对其内容进行检索连接,并将消息发送至客户端。
优选的,所述客户端用于在第一次登录该系统时,需要对该用户的客户端请求参数,并且需要客户端的用户ID以及身份信息,其ID和身份信息会在WS中重新生成服务集群保存至session中。
优选的,所述session为每个用户对象存储提供会话所需的属性及配置信息,且用户在Web页之间跳转时,其内部的对象变量不会丢失。
本发明的有益效果为:当服务器完成协议升级后,服务端就可以主动推送信息给客户端,这样的协议解决了上面同步有延迟,而且还非常消耗资源的这种情况,其实我们所用的程序是要经过两层代理的,即HTTP协议在Nginx等服务器的解析下,然后再传送给相应的Handler来处理,建立后,可以直接跟后端建立持长连接,有信息的时候后端再通知客户端,本发明基于ws协议,利用ws协议的特性,通过后台向前端主动推送消息,从而解决TCP慢启动、HTTP的请求只能从前端向后端发起、前端轮询频繁请求导致后端压力太大的问题,这样就可以解决后端速度过慢的问题了。
附图说明
图1为本发明的框架结构示意图。
图2为本发明的流程结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
参照图1-图2所示,一种基于ws协议的后台推送的开发方法和系统,包括括服务器,所述服务器用于接收客户端的登录请求,所述服务器将登录请求发送给WS协议,所述WS协议升级完成后通过服务器能够直接将消息发送至客户端,所述客户端发送的地址有两种方式,一种通过HTTP协议时直接将其登录信息保存至session内存中,另一种所述客户端的地址被URI访问,所述服务器中WS和HTTP会进行握手升级保存至session中
如图2所示,包括如下步骤:
步骤1:数据生产者和后端进行长连接,收到约定的数据结构体,结构体包括数据类型和数据属性;
步骤2:后端根据步骤1约定的数据类型和属性解析接收到的消息并设计接口并封装方法;
步骤3:在后端框架中构建项目,将步骤1获得的数据结构体引入编译环境中,引入步骤2的接口,对需要的数据进行筛选,组装;
步骤4:后端启动ws服务端并设定客户端约定好ws连接地址;
步骤5:后端和客户端约定好发送消息的数据结构和数据类型,在页面需要实时数据推送的时候打开ws连接,连接到步骤4约定好的地址中;
步骤6:后端经过身份令牌验证确定是本系统用户,保存用户连接session到内存中,在收到设备消息且用户端保持连接的状态下以约定的数据结构向客户端推送消息,同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输鉴别信息,来告诉后端你是谁,虽然后端很快速,但是并发一高,效率也会有所下降的,同时还得不断把这些信息转交给后端,不但浪费后端的处理时间,而且还会在网路传输中消耗过多的流量/时间,但是Websocket只需要一次HTTP握手,所以说整个通讯过程是建立在一次连接/状态中,也就避免了HTTP的非状态性,后端会一直知道你的信息,直到你关闭请求,这样就解决了后端要反复解析HTTP协议,还要查看鉴别信息的信息;同时由客户端主动询问,转换为后端有信息的时候就发送没有信息的时候就交给Nginx,不需要占用本身速度就慢的Handler了。
如图1和2所示,所述步骤1具体为:后台收到IOT上传的数据,然后将数据转换为能够编程的数据结果对象,其数据结果对象包括:类型和键值属性,所述步骤5和步骤6具体为:在后台系统里,根据获得的数据结构对象,设计封装前端需要的数据对象结构,根据连入后台的前端的session推送给在线的前端设备,所述服务器中通过客户端的输入地址进行WS升级,当客户端输入地址传送至服务器中时,通过服务器对地址进行辨别,当地址为/WS时URI被访问,那么其服务器就会对WS进行升级,升级完成后服务器就会通过WS进行发送消息,处理HTTP请求为:所述服务器收到的地址为/WS的URI时,其HttpRequestHandler将调用FullHttp-Request对象上的retain()方法,并且能够通过调用fireChannelRead(msg)的方法将它转发给下一个ChannelInHandlr,用retain()方法是因为调用ChannelRead()方法完成的时候,将它调用FullHttpRequest对象上的retain()方法释放其资源,所述步骤6具体为:先获取客户端的用户登录的ID,然后根据用于的ID在所在的session内存中找到信息内容,然后通过WS将信息内容的申请发送至服务器中,通过服务器对其内容进行检索连接,并将消息发送至客户端,所述客户端用于在第一次登录该系统时,需要对该用户的客户端请求参数,并且需要客户端的用户ID以及身份信息,其ID和身份信息会在WS中重新生成服务集群保存至session中,所述session为每个用户对象存储提供会话所需的属性及配置信息,且用户在Web页之间跳转时,其内部的对象变量不会丢失。
下面通过一个智能清洁机器人的客户端的具体实施例对本发明进行详细描述:
首先智能机器人和后端约定好数据结构并进行mqtt长连接,结构体包括数据类型和数据属性;
然后双方约定好mqtt的话题,智能机器人是数据生产者,后端是数据订阅者,智能机器人按照约定的数据格式向后端发送实时消息;
然后服务端同时启动ws服务,手机app作为ws客户端在进入实时任务界面时连接到服务端的ws地址,服务端根据用户登录发放的令牌进行身份校验,通过校验的把用户session保存在内存里,以便后续发送消息;
在后端收到智能机器人地址且手机app已经连接到后端的情况下,通过ws协议向后端主动推送已经处理好的实时数据;
手机app收到实时消息推送把数据实时渲染在前端页面里展示,实现展示机器人的实时数据。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于ws协议的后台推送的开发方法和系统,包括服务器,其特征在于,所述服务器用于接收客户端的登录请求,所述服务器将登录请求发送给WS协议,所述WS协议升级完成后通过服务器能够直接将消息发送至客户端。
2.根据权利要求1所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,所述客户端发送的地址有两种方式,一种通过HTTP协议时直接将其登录信息保存至session内存中,另一种所述客户端的地址被URI访问,所述服务器中WS和HTTP会进行握手升级保存至session中。
3.根据权利要求1所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,包括如下步骤:
步骤1:数据生产者和后端进行长连接,收到约定的数据结构体,结构体包括数据类型和数据属性;
步骤2:后端根据步骤1约定的数据类型和属性解析接收到的消息并设计接口并封装方法;
步骤3:在后端框架中构建项目,将步骤1获得的数据结构体引入编译环境中,引入步骤2的接口,对需要的数据进行筛选,组装;
步骤4:后端启动ws服务端并设定客户端约定好ws连接地址;
步骤5:后端和客户端约定好发送消息的数据结构和数据类型,在页面需要实时数据推送的时候打开ws连接,连接到步骤4约定好的地址中;
步骤6:后端经过身份令牌验证确定是本系统用户,保存用户连接session到内存中,在收到设备消息且用户端保持连接的状态下以约定的数据结构向客户端推送消息。
4.根据权利要求3所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,所述步骤1具体为:后台收到IOT上传的数据,然后将数据转换为能够编程的数据结果对象,其数据结果对象包括:类型和键值属性。
5.根据权利要求3所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,所述步骤5和步骤6具体为:在后台系统里,根据获得的数据结构对象,设计封装前端需要的数据对象结构,根据连入后台的前端的session推送给在线的前端设备。
6.根据权利要求1所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,所述服务器中通过客户端的输入地址进行WS升级,当客户端输入地址传送至服务器中时,通过服务器对地址进行辨别,当地址为/WS时URI被访问,那么其服务器就会对WS进行升级,升级完成后服务器就会通过WS进行发送消息。
7.根据权利要求6所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,处理HTTP请求为:
所述服务器收到的地址为/WS的URI时,其HttpRequestHandler将调用FullHttp-Request对象上的retain()方法,并且能够通过调用fireChannelRead(msg)的方法将它转发给下一个ChannelInHandlr,用retain()方法是因为调用ChannelRead()方法完成的时候,将它调用FullHttpRequest对象上的retain()方法释放其资源。
8.根据权利要求1所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,所述步骤6具体为:先获取客户端的用户登录的ID,然后根据用于的ID在所在的session内存中找到信息内容,然后通过WS将信息内容的申请发送至服务器中,通过服务器对其内容进行检索连接,并将消息发送至客户端。
9.根据权利要求1所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,所述客户端用于在第一次登录该系统时,需要对该用户的客户端请求参数,并且需要客户端的用户ID以及身份信息,其ID和身份信息会在WS中重新生成服务集群保存至session中。
10.根据权利要求1所述的一种基于ws协议的后台推送的开发方法和系统,其特征在于,所述session为每个用户对象存储提供会话所需的属性及配置信息,且用户在Web页之间跳转时,其内部的对象变量不会丢失。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310235015.5A CN116233233A (zh) | 2023-03-13 | 2023-03-13 | 一种基于ws协议的后台推送的开发方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310235015.5A CN116233233A (zh) | 2023-03-13 | 2023-03-13 | 一种基于ws协议的后台推送的开发方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116233233A true CN116233233A (zh) | 2023-06-06 |
Family
ID=86590887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310235015.5A Pending CN116233233A (zh) | 2023-03-13 | 2023-03-13 | 一种基于ws协议的后台推送的开发方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116233233A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010072103A1 (zh) * | 2008-12-23 | 2010-07-01 | 华为终端有限公司 | 推送会话的建立方法、推送系统和相关设备 |
CN107317788A (zh) * | 2016-04-26 | 2017-11-03 | 北京京东尚科信息技术有限公司 | 实时数据推送方法和装置 |
CN111427703A (zh) * | 2020-03-12 | 2020-07-17 | 上海昊沧系统控制技术有限责任公司 | 工业数据实时展示方法及系统 |
CN112118266A (zh) * | 2020-09-24 | 2020-12-22 | 焦点科技股份有限公司 | 一种HTTP与WebSocket协同的分布式状态同步方法 |
CN112612985A (zh) * | 2020-12-24 | 2021-04-06 | 广州致远电子有限公司 | 基于WebSocket的多用户和多类型消息的推送系统及方法 |
-
2023
- 2023-03-13 CN CN202310235015.5A patent/CN116233233A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010072103A1 (zh) * | 2008-12-23 | 2010-07-01 | 华为终端有限公司 | 推送会话的建立方法、推送系统和相关设备 |
CN107317788A (zh) * | 2016-04-26 | 2017-11-03 | 北京京东尚科信息技术有限公司 | 实时数据推送方法和装置 |
CN111427703A (zh) * | 2020-03-12 | 2020-07-17 | 上海昊沧系统控制技术有限责任公司 | 工业数据实时展示方法及系统 |
CN112118266A (zh) * | 2020-09-24 | 2020-12-22 | 焦点科技股份有限公司 | 一种HTTP与WebSocket协同的分布式状态同步方法 |
CN112612985A (zh) * | 2020-12-24 | 2021-04-06 | 广州致远电子有限公司 | 基于WebSocket的多用户和多类型消息的推送系统及方法 |
Non-Patent Citations (2)
Title |
---|
刘敏英: "基于Web的远程监控系统的设计与实现", 全国优秀硕士学位论文全文数据库 信息科技辑, 15 February 2009 (2009-02-15) * |
小白DEBUG: "为什么有HTTP协议,还要有websocket协议?", Retrieved from the Internet <URL:https://juejin.cn/post/7144161126652051464> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105763619B (zh) | 客户端与服务端进行通讯的方法及装置 | |
CN110413418B (zh) | 缓存同步装置及方法,缓存同步系统、电子设备 | |
EP3028437B1 (en) | Messaging api over http protocol to establish context for data exchange | |
WO2002080014A1 (en) | Assembling concurrently-generated personalized web pages | |
CN108833950A (zh) | 一种弹幕消息下发方法、服务器、系统和存储介质 | |
CN101854371A (zh) | JavaScript对象的调用及处理的方法、装置 | |
CN111064771B (zh) | 一种网络请求处理方法及系统 | |
WO2017114190A1 (zh) | 一种文件上传处理方法及装置 | |
CN107181779A (zh) | 访问请求的处理方法、装置和系统 | |
CN112954013B (zh) | 一种网络文件信息获取方法、装置、设备及存储介质 | |
CN108156223A (zh) | 一种基于websocket的消息精准推送系统及方法 | |
CN109889558A (zh) | 面向物联网应用的数据传输方法、中间件及系统 | |
EP2802115A1 (en) | Method, terminal and server for recovering session content transmission | |
WO2021226781A1 (zh) | 防火墙规则的更新方法、装置、服务器及存储介质 | |
CN107846609B (zh) | 控制室数据实时传输方法、装置和系统 | |
CN113055348B (zh) | 一种跨平台数据请求方法、装置及电子设备 | |
CN103442256B (zh) | 一种基于html5实现电子节目菜单的方法及系统 | |
EP1325424A2 (en) | Method and system for assembling concurrently-generated content | |
CN110661850B (zh) | 一种边缘计算方法、系统、计算机设备和存储介质 | |
CN110113430B (zh) | 一种基于云数据库的手机与树莓派之间的通信方法 | |
CN116233233A (zh) | 一种基于ws协议的后台推送的开发方法和系统 | |
CN114827274B (zh) | 请求处理方法以及装置 | |
Chika et al. | Financial stock application using websocket in Real Time Application | |
WO2022067509A1 (zh) | 设备升级控制方法、装置、计算机设备及存储介质 | |
CN112597022A (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 |