CN117459574A - 基于stomp协议的站内信息推送方法及系统 - Google Patents

基于stomp协议的站内信息推送方法及系统 Download PDF

Info

Publication number
CN117459574A
CN117459574A CN202310812996.5A CN202310812996A CN117459574A CN 117459574 A CN117459574 A CN 117459574A CN 202310812996 A CN202310812996 A CN 202310812996A CN 117459574 A CN117459574 A CN 117459574A
Authority
CN
China
Prior art keywords
message
pushing
read
time
server
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
Application number
CN202310812996.5A
Other languages
English (en)
Inventor
周永杰
单震
谢传家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Original Assignee
Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chaozhou Zhuoshu Big Data Industry Development Co Ltd filed Critical Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Priority to CN202310812996.5A priority Critical patent/CN117459574A/zh
Publication of CN117459574A publication Critical patent/CN117459574A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了基于STOMP协议的站内信息推送方法及系统,属于站内消息推送技术领域,要解决的技术问题为如何基于STOMP协议实现站内信消息实时推送到浏览器页面。包括如下步骤:配置消息体,消息体为发送消息的格式,消息以JSON格式发送;配置数据库,在数据库中设置一张消息表,并定于消息表中字段;基于STOMP协议设置消息推送流程,基于推送流程将站内信消息实时推送到浏览器页面。

Description

基于STOMP协议的站内信息推送方法及系统
技术领域
本发明涉及站内消息推送技术领域,具体地说是基于STOMP协议的站内信息推送方法及系统。
背景技术
站内信本质上是要求服务器端能够主动推送消息到客户端,对于在基于B/S架构的下web应用,也可理解为需要实现基于Web的实时通信。对于Web实时通信技术的,经历了以下几个阶段:
传统轮询:传统轮询是指在Web1.0时代,页面通过设置meta标签里的”http-equiv”和”content”这两个属性,以固定的时间差不断地向服务器发起HTTP请求,从而不断刷新整个页面。
AJAX短轮询:AJAX短轮询就是使用AJAX以短暂的时间差不断地向服务器发送HTTP请求,从而达到客户端和服务器间即时通信的效果。
AJAX长轮询:AJAX长轮询是指客户端首先通过AJAX技术发起HTTP请求,服务器接收到后,先保持住请求不响应,然后再检查有无新数据产生。如有新数据产生,则服务器立即返回给客户端并断开连接,而客户端收到数据后局部刷新页面,并再次发送HTTP请求。
基于Iframe的流方式:基于Iframe的流方式主要是在页面上嵌入一个隐藏iframe标签,然后通过JavaScript脚本将隐藏标签的”src”属性设置为请求建立长连接的地址。当JavaScript脚本执行时,Iframe标签向服务器发起一个基于HTTP的长连接请求,服务器收到后保持住该请求不返回响应,当有新数据产生时再返回给客户端,并且在数据传递完成后依旧不释放。
基于插件的通信方式:基于插件的方式,一般是指浏览器利用JavaApplet或者Flash等插件,和服务器通过套接字Socket建立TCP连接,之后服务器通过网络Socket连接将实时数据传送到插件,插件再将数据动态显示到浏览器页面上。
基于WebSocket方式:WebSocket是HTML5中一种新的应用层通信协议,借鉴了Socket思想,能为客户端和服务器端提供一种全双工通信机制。
WebSocket发送是以帧为单位的,而WebSocket协议上并没有规定其消息发送的详细格式,那就意味着每个WebSocket开发者,都需要自己在服务端和开发端定义一套规则,来传输信息。
STOMP协议全称Streaming Text Orientated Message Protocol,是流文本定向消息消息,是一种为MOM(Message Orientated Middleware,面向消息的中间件)设计的简单文本协议,它提供了一种可互操作的连接方式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。
STOMP协议可以建立在WebSocket之上,也可以建立在其他应用层协议之上。并不是为WS所设计的,它其实是消息队列的一种协议,和AMQP,JMS是平级的。只不过由于它的简单性恰巧可以用于定义WS的消息体格式。目前很多服务端消息队列都已经支持了STOMP,比如RabbitMQ,Apache ActiveMQ等。很多语言也都有STOMP协议的客户端解析库,像JAVA的Gozirra,C的libstomp,Python的pyactivemq,JavaScript的stomp.js等等。
站内信消息是目前web管理系统中必不可少的一部分,它是指在重要的流程节点上,系统先将自动产生的消息记录存储到数据库中,具有对应权限的用户登录后进行查询、阅读该消息。然而这种由客户端主动发起AJAX请求查询站内信的方式,无法保证消息查询实时性。对于一些重要的流程,由此造成的滞后性,可能会带来不必要的损失。
如何基于STOMP协议实现站内信消息实时推送到浏览器页面,以消除用户主动发起AJAX查询请求存在的一些弊端,从而达到重要流程节点消息及时被感知的效果,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供基于STOMP协议的站内信息推送方法及系统,来解决如何基于STOMP协议实现站内信消息实时推送到浏览器页面的技术问题。
第一方面,本发明一种基于STOMP协议的站内信息推送方法,包括如下步骤:
配置消息体,消息体为发送消息的格式,消息以JSON格式发送;
配置数据库,在数据库中设置一张消息表,并定于消息表中字段;
基于STOMP协议设置消息推送流程,基于推送流程将站内信消息实时推送到浏览器页面。
作为优选,消息体包括消息ID、消息类型、消息发送时间、消息发送方、消息发送方系统、消息接收方、消息接收方系统、消息内容以及消息推送次数。
作为优选,消息表包括如下字段:
message_id,表示消息ID,
message_type,表示消息类型,
message_send_time,消息发送时间,
message_from,消息发送方,
message_from_system,消息发送方系统,
message_to,消息接收方,
message_to_system,消息接收方系统,
message_content,消息内容,
message_is_read,消息是否阅读,
message_read_time,消息阅读时间,
message_send_count,消息推送次数。
作为优选,所述消息推送流程为:
用户A登录后,触发连接stomp服务端的方法,等待消息的到来;
当重要流程节点的事件发生后,服务端主动向特定用户发送消息;
用户A及时收到服务端发送的消息,如果打开阅读,向服务器发送ajax请求,设置该条消息已阅读;
服务器端启动一个线程,定时检测消息是否已被阅读,如果未被阅读,重新向用户A发送该消息,直至达到发送阈值位置;
用户A退出,断开和stomp服务端连接。
第二方面,本发明一种基于STOMP协议的站内信息推送系统,用于通过如第一方面任一项所述的基于STOMP协议的站内信息推送方法将站内消息推送至浏览器页面,所述系统包括:
消息体配置模块,所述消息体配置模块用于配置消息体,消息体为发送消息的格式,消息以JSON格式发送;
数据库配置模块,所述数据库配置模块用于配置数据库,在数据库中设置一张消息表,并定于消息表中字段;
推送流程模块,所述推送流程模块用于基于STOMP协议设置消息推送流程,并基于推送流程将站内信消息实时推送到浏览器页面。
作为优选,消息体包括消息ID、消息类型、消息发送时间、消息发送方、消息发送方系统、消息接收方、消息接收方系统、消息内容以及消息推送次数。
作为优选,消息表包括如下字段:
message_id,表示消息ID,
message_type,表示消息类型,
message_send_time,消息发送时间,
message_from,消息发送方,
message_from_system,消息发送方系统,
message_to,消息接收方,
message_to_system,消息接收方系统,
message_content,消息内容,
message_is_read,消息是否阅读,
message_read_time,消息阅读时间,
message_send_count,消息推送次数。
作为优选,所述消息推送流程为:
用户A登录后,触发连接stomp服务端的方法,等待消息的到来;
当重要流程节点的事件发生后,服务端主动向特定用户发送消息;
用户A及时收到服务端发送的消息,如果打开阅读,向服务器发送ajax请求,设置该条消息已阅读;
服务器端启动一个线程,定时检测消息是否已被阅读,如果未被阅读,重新向用户A发送该消息,直至达到发送阈值位置;
用户A退出,断开和stomp服务端连接。
本发明的基于STOMP协议的站内信息推送方法及系统具有以下优点:
1、AJAX轮询是设置一个时间间隔,不断向服务器发送AJAX请求,来达到实时更新数据的效果,但是这种方式有一个明显的弊端,那就是时间间隔的不确定性,时间间隔长了,数据更新不及时,时间间隔短了,需要不断建立和释放连接,对服务器造成影响,本申请基于stopm协议的消息站内信推送系统,消除用户主动发起AJAX查询请求存在的弊端,从而达到重要流程节点消息及时被感知的效果;
2、基于stomp协议的通信技术,可以建立在WebSocket之上,WebSocket可以保障实时的全双工通信,而stomp协议则定义了一套现有的规则来传递消息,两者结合起来,避免用户直接基于WebSocket来做开发,节约开发成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为实施例1一种基于STOMP协议的站内信息推送方法中webstocket通信原理框图;
图2为实施例1一种基于STOMP协议的站内信息推送方法中基于stomp协议的通信原理框图;
图3为实施例1为实施例1一种基于STOMP协议的站内信息推送方法的流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供基于STOMP协议的站内信息推送方法及系统,用于解决如何基于STOMP协议实现站内信消息实时推送到浏览器页面的技术问题。
实施例1:
本发明一种基于STOMP协议的站内信息推送方法,包括如下步骤:
S100、配置消息体,消息体为发送消息的格式,消息以JSON格式发送;
S200、配置数据库,在数据库中设置一张消息表,并定于消息表中字段;
S300、基于STOMP协议设置消息推送流程,基于推送流程将站内信消息实时推送到浏览器页面。
本实施例在配置消息体之前,进行技术选型,前端技术选用jquery+stomp.js+socket.js+thymeleaf,后端技术选用springboot+websocket+mybatis+mysql。
步骤S100中消息体包括消息ID、消息类型、消息发送时间、消息发送方、消息发送方系统、消息接收方、消息接收方系统、消息内容以及消息推送次数。
对应的,消息表message_info包括如下字段:
message_id,表示消息ID,
message_type,表示消息类型,
message_send_time,消息发送时间,
message_from,消息发送方,
message_from_system,消息发送方系统,
message_to,消息接收方,
message_to_system,消息接收方系统,
message_content,消息内容,
message_is_read,消息是否阅读,
message_read_time,消息阅读时间,
message_send_count,消息推送次数。
步骤S300中设定的推送流程为:
(1)用户A登录后,触发连接stomp服务端的方法,等待消息的到来;
(2)当重要流程节点的事件发生后,服务端主动向特定用户发送消息;
(3)用户A及时收到服务端发送的消息,如果打开阅读,向服务器发送ajax请求,设置该条消息已阅读;
(4)服务器端启动一个线程,定时检测消息是否已被阅读,如果未被阅读,重新向用户A发送该消息,直至达到发送阈值位置;
(5)用户A退出,断开和stomp服务端连接。
实施例2:
本发明一种基于STOMP协议的站内信息推送系统,包括消息体配置模块、数据库配置模块以及推送流程模块,该系统可执行实施例1公开的方法。
消息体配置模块用于配置消息体,消息体为发送消息的格式,消息以JSON格式发送。
本实施例中,消息体包括消息ID、消息类型、消息发送时间、消息发送方、消息发送方系统、消息接收方、消息接收方系统、消息内容以及消息推送次数。
数据库配置模块用于配置数据库,在数据库中设置一张消息表,并定于消息表中字段。
本实施例中消息表包括如下字段:
message_id,表示消息ID,
message_type,表示消息类型,
message_send_time,消息发送时间,
message_from,消息发送方,
message_from_system,消息发送方系统,
message_to,消息接收方,
message_to_system,消息接收方系统,
message_content,消息内容,
message_is_read,消息是否阅读,
message_read_time,消息阅读时间,
message_send_count,消息推送次数。
推送流程模块用于基于STOMP协议设置消息推送流程,并基于推送流程将站内信消息实时推送到浏览器页面。
其中,作为具体实施,消息推送流程为:
(1)用户A登录后,触发连接stomp服务端的方法,等待消息的到来;
(2)当重要流程节点的事件发生后,服务端主动向特定用户发送消息;
(3)用户A及时收到服务端发送的消息,如果打开阅读,向服务器发送ajax请求,设置该条消息已阅读;
(4)服务器端启动一个线程,定时检测消息是否已被阅读,如果未被阅读,重新向用户A发送该消息,直至达到发送阈值位置;
(5)用户A退出,断开和stomp服务端连接。
本实施例系统执行实施例1公开方法时,前端技术选用jquery+stomp.js+socket.js+thymeleaf,后端技术选用springboot+websocket+mybatis+mysql。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

Claims (8)

1.一种基于STOMP协议的站内信息推送方法,其特征在于,包括如下步骤:
配置消息体,消息体为发送消息的格式,消息以JSON格式发送;
配置数据库,在数据库中设置一张消息表,并定于消息表中字段;
基于STOMP协议设置消息推送流程,基于推送流程将站内信消息实时推送到浏览器页面。
2.根据权利要求1所述的基于STOMP协议的站内信息推送方法,其特征在于,消息体包括消息ID、消息类型、消息发送时间、消息发送方、消息发送方系统、消息接收方、消息接收方系统、消息内容以及消息推送次数。
3.根据权利要求2所述的基于STOMP协议的站内信息推送方法,其特征在于,消息表包括如下字段:
message_id,表示消息ID,
message_type,表示消息类型,
message_send_time,消息发送时间,
message_from,消息发送方,
message_from_system,消息发送方系统,
message_to,消息接收方,
message_to_system,消息接收方系统,
message_content,消息内容,
message_is_read,消息是否阅读,
message_read_time,消息阅读时间,
message_send_count,消息推送次数。
4.根据权利要求1所述的基于STOMP协议的站内信息推送方法,其特征在于,所述消息推送流程为:
用户A登录后,触发连接stomp服务端的方法,等待消息的到来;
当重要流程节点的事件发生后,服务端主动向特定用户发送消息;
用户A及时收到服务端发送的消息,如果打开阅读,向服务器发送ajax请求,设置该条消息已阅读;
服务器端启动一个线程,定时检测消息是否已被阅读,如果未被阅读,重新向用户A发送该消息,直至达到发送阈值位置;
用户A退出,断开和stomp服务端连接。
5.一种基于STOMP协议的站内信息推送系统,其特征在于,用于通过如权利要求1-4任一项所述的基于STOMP协议的站内信息推送方法将站内消息推送至浏览器页面,所述系统包括:
消息体配置模块,所述消息体配置模块用于配置消息体,消息体为发送消息的格式,消息以JSON格式发送;
数据库配置模块,所述数据库配置模块用于配置数据库,在数据库中设置一张消息表,并定于消息表中字段;
推送流程模块,所述推送流程模块用于基于STOMP协议设置消息推送流程,并基于推送流程将站内信消息实时推送到浏览器页面。
6.根据权利要求5所述的基于STOMP协议的站内信息推送系统,其特征在于,消息体包括消息ID、消息类型、消息发送时间、消息发送方、消息发送方系统、消息接收方、消息接收方系统、消息内容以及消息推送次数。
7.根据权利要求6所述的基于STOMP协议的站内信息推送系统,其特征在于,消息表包括如下字段:
message_id,表示消息ID,
message_type,表示消息类型,
message_send_time,消息发送时间,
message_from,消息发送方,
message_from_system,消息发送方系统,
message_to,消息接收方,
message_to_system,消息接收方系统,
message_content,消息内容,
message_is_read,消息是否阅读,
message_read_time,消息阅读时间,
message_send_count,消息推送次数。
8.根据权利要求5-7任一项所述的基于STOMP协议的站内信息推送系统,其特征在于,所述消息推送流程为:
用户A登录后,触发连接stomp服务端的方法,等待消息的到来;
当重要流程节点的事件发生后,服务端主动向特定用户发送消息;
用户A及时收到服务端发送的消息,如果打开阅读,向服务器发送ajax请求,设置该条消息已阅读;
服务器端启动一个线程,定时检测消息是否已被阅读,如果未被阅读,重新向用户A发送该消息,直至达到发送阈值位置;
用户A退出,断开和stomp服务端连接。
CN202310812996.5A 2023-07-04 2023-07-04 基于stomp协议的站内信息推送方法及系统 Pending CN117459574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310812996.5A CN117459574A (zh) 2023-07-04 2023-07-04 基于stomp协议的站内信息推送方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310812996.5A CN117459574A (zh) 2023-07-04 2023-07-04 基于stomp协议的站内信息推送方法及系统

Publications (1)

Publication Number Publication Date
CN117459574A true CN117459574A (zh) 2024-01-26

Family

ID=89580523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310812996.5A Pending CN117459574A (zh) 2023-07-04 2023-07-04 基于stomp协议的站内信息推送方法及系统

Country Status (1)

Country Link
CN (1) CN117459574A (zh)

Similar Documents

Publication Publication Date Title
CN111787066B (zh) 一种基于大数据与ai的物联网数据平台
EP1993260B1 (en) Shortcut in reliable communication
US7761522B2 (en) System and method for providing asynchronous notifications using synchronous data sources
US8671145B2 (en) Method and computer program product for establishing real-time communications between networked computers
US7929523B2 (en) System and method for communicating asynchronously with synchronous web services using a mediator service
US7844670B2 (en) Method and computer program product for establishing real-time communications between networked computers
EP1695518B1 (en) Method of redirecting client requests to web services
US20080177872A1 (en) Managing aggregation and sending of communications
CN111212085B (zh) 物联网平台同步调用的方法、物联网系统和网络设备
US20080155104A1 (en) Method and system for resource-based synchronization between endpoints in a web-based real time collaboration
CN112600926A (zh) 一种消息推送方法、装置及计算机可读存储介质
CN109660617A (zh) 一种基于服务器集群的消息推送方法
CN110086759B (zh) 一种用于在异构系统之间实现消息传递的方法和装置
KR101602099B1 (ko) 사물인터넷에서 레스트 기반의 서비스 연동 시스템 및 그 방법
CN103782278A (zh) 用于提供在中间件或其它环境中使用的动态调取和服务界面的系统和方法
CN112689020B (zh) 一种消息传输方法、消息中间件、电子设备及存储介质
CN113037834A (zh) 基于分布式即时推送的Web页面状态更新方法及装置
KR20160110585A (ko) 사물 인터넷에서 dds 기반 사물 품질의 설정 방법
CN117459574A (zh) 基于stomp协议的站内信息推送方法及系统
CN107733979B (zh) 数据推送方法、服务器及系统
CN112187916B (zh) 一种跨系统的数据同步方法与装置
CN113992641A (zh) 一种数据处理方法、装置、设备及存储介质
CN114553891B (zh) 同步请求转异步处理的方法、系统、终端设备及存储介质
JP4959339B2 (ja) ウェブ・サービス・インターメディアリ用のポート・タイプ非依存型プロキシ・サポート
US11968253B2 (en) Request delivery device, request delivery method, and request delivery program

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