当前位置: 首页 > news >正文

主题资源网站建设步骤seo排名快速优化

主题资源网站建设步骤,seo排名快速优化,佛山网站建设专家,网站项目签约本实例介绍了Spring Cloud Gateway整合基于STOMP协议的WebSocket的实现。开发了聊天功能,和用户在线状态。解决了协议gateway整合websocket出现的问题 技术点 Spring Cloud GatewayNacosWebSocketSTOMPWebSocket与STOMP协议详解 1. WebSocket WebSocket 是一种通信协议,提…

本实例介绍了Spring Cloud Gateway整合基于STOMP协议的WebSocket的实现。开发了聊天功能,和用户在线状态。解决了协议gateway整合websocket出现的问题

技术点

  • Spring Cloud Gateway
  • Nacos
  • WebSocket
  • STOMP

WebSocket与STOMP协议详解

1. WebSocket

WebSocket 是一种通信协议,提供了在客户端和服务器之间建立全双工通信的功能。这意味着客户端和服务器可以在任意时间相互发送数据,而不必遵循请求-响应的传统模式(如HTTP)。

特点:
  • 双向通信:与传统的HTTP不同,WebSocket允许服务器主动向客户端推送数据,而不必等待客户端请求。

  • 持久连接:WebSocket连接一旦建立,可以一直保持连接,直到任意一方关闭它。这减少了频繁建立连接的开销。

  • 低延迟:由于WebSocket消除了HTTP请求的头部开销和连接延迟,因此它适合于对延迟敏感的应用,如在线游戏、股票交易和聊天应用。

工作流程:
  1. 连接建立:客户端通过HTTP的升级机制(Upgrade header)请求建立WebSocket连接。

  2. 数据传输:一旦连接建立,客户端和服务器可以通过这个连接双向传输数据,使用一种轻量级的帧格式。

  3. 连接关闭:任意一方可以随时关闭连接,通知对方连接已关闭。

使用场景:
  • 实时聊天应用

  • 实时数据流(如股票行情、体育比赛更新)

  • 在线多人游戏

  • 实时协作工具(如Google Docs)

2. STOMP

STOMP(Simple Text Oriented Messaging Protocol) 是一种简单的文本协议,用于在客户端和消息代理(例如,RabbitMQ、ActiveMQ)之间交换消息。它是应用层的协议,常用于消息传递系统,提供了一种基于消息的通信方式。

特点:
  • 简单易用:STOMP使用类似于HTTP的文本格式,非常容易理解和实现。

  • 基于订阅/发布模型:STOMP支持基于主题(topic)的订阅/发布模型,这使得消息可以广播给多个客户端。

  • 支持消息队列:STOMP支持将消息发送到队列,多个消费者可以从同一个队列中读取消息,确保负载均衡。

常用命令:
  • CONNECT:客户端请求连接到STOMP服务器。

  • SEND:客户端发送一条消息到指定的目的地(如某个队列或主题)。

  • SUBSCRIBE:客户端订阅某个目的地,以接收该目的地的所有消息。

  • UNSUBSCRIBE:取消订阅。

  • DISCONNECT:断开与STOMP服务器的连接。

STOMP和WebSocket的结合:

虽然WebSocket本身是一个很好的低延迟双向通信工具,但它只提供了一种基础的传输方式,没有定义消息的格式或通信模式。STOMP可以在WebSocket之上运行,提供了消息格式、路由、确认等高级功能。

例如,在一个实时聊天应用中,WebSocket用于底层的双向通信,而STOMP则负责处理消息的路由和格式化:

  • 客户端通过WebSocket连接到服务器,并通过STOMP发送或订阅消息。

  • 服务器使用STOMP协议将消息广播给所有订阅了相应主题的客户端。

WebSocket服务端

依赖

<!-- WebSocket依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!-- nacos依赖 -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId>
</dependency>
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

枚举类

package com.inspur.message.constant;import lombok.AccessLevel;
import lombok.AllArgsConstructor;@AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum MessageTypeEnum {TEXT("文本"),IMAGE("图片"),VOICE("语音"),FILE("文件"),EMOJI("表情"),SYSTEM_NOTIFICATION("系统通知"),LOCATION("位置"),LINK("链接"),RECALL("撤回"),MENTION("@提及"),SYSTEM_MESSAGE("系统提示"),VIDEO("视频"),RED_PACKET("红包"),VOTE("投票"),FRIEND_SHARE("好友分享");// 其他可能的消息类型...private String description;public String getDescription() {return description;}public static boolean isFileMessageType(MessageTypeEnum messageType) {return messageType == IMAGE || messageType == VOICE || messageType == FILE || messageType == VIDEO;}
}

WebSocket配置类

package com.inspur.message.config;import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;@Configuration
@EnableWebSocketMessageBroker//注解开启STOMP协议来传输基于代理的信息,实现实时双向通信和消息传递
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {/*** 客户端在订阅或发布消息到目的地路径前,要连接到该端点** @param registry*/@Overridepublic void registerStompEndpoints(StompEndpointRegistry registry) {registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();// 启用 SockJS (浏览器不支持WebSocket,SockJS 将会提供兼容性支持)}/*** 配置消息代理** @param register*/@Overridepublic void configureMessageBroker(MessageBrokerRegistry register) {/*** 放开的前缀路由,客户端才能接收对应路由开头的信息

文章转载自:
http://plumbite.Lbqt.cn
http://misthink.Lbqt.cn
http://gunpowder.Lbqt.cn
http://admit.Lbqt.cn
http://tacloban.Lbqt.cn
http://uraemic.Lbqt.cn
http://yeomenry.Lbqt.cn
http://urticaceous.Lbqt.cn
http://opencut.Lbqt.cn
http://distillation.Lbqt.cn
http://megrim.Lbqt.cn
http://weet.Lbqt.cn
http://carrefour.Lbqt.cn
http://genoese.Lbqt.cn
http://bratwurst.Lbqt.cn
http://vengefully.Lbqt.cn
http://goldenrain.Lbqt.cn
http://fifi.Lbqt.cn
http://four.Lbqt.cn
http://rondure.Lbqt.cn
http://colluvial.Lbqt.cn
http://antennate.Lbqt.cn
http://underdrawers.Lbqt.cn
http://tubectomy.Lbqt.cn
http://playbroker.Lbqt.cn
http://amphibrach.Lbqt.cn
http://cuppy.Lbqt.cn
http://impubic.Lbqt.cn
http://accessary.Lbqt.cn
http://edaphic.Lbqt.cn
http://aquaculture.Lbqt.cn
http://capsule.Lbqt.cn
http://canonicate.Lbqt.cn
http://cark.Lbqt.cn
http://strafe.Lbqt.cn
http://dynamicfocus.Lbqt.cn
http://seism.Lbqt.cn
http://kumquat.Lbqt.cn
http://quakerism.Lbqt.cn
http://antagonize.Lbqt.cn
http://cercis.Lbqt.cn
http://rijsttafel.Lbqt.cn
http://inflorescence.Lbqt.cn
http://teaser.Lbqt.cn
http://singlet.Lbqt.cn
http://axostyle.Lbqt.cn
http://fructuous.Lbqt.cn
http://monophysite.Lbqt.cn
http://tetramethyl.Lbqt.cn
http://unsymmetry.Lbqt.cn
http://erotogenic.Lbqt.cn
http://butyrometer.Lbqt.cn
http://antimatter.Lbqt.cn
http://prognostic.Lbqt.cn
http://apologized.Lbqt.cn
http://cricoid.Lbqt.cn
http://metallurgy.Lbqt.cn
http://commutativity.Lbqt.cn
http://sonless.Lbqt.cn
http://unpeace.Lbqt.cn
http://wired.Lbqt.cn
http://undraw.Lbqt.cn
http://shoplifter.Lbqt.cn
http://paty.Lbqt.cn
http://attenuate.Lbqt.cn
http://parole.Lbqt.cn
http://valuably.Lbqt.cn
http://highbinder.Lbqt.cn
http://ecumene.Lbqt.cn
http://rhombohedron.Lbqt.cn
http://saccharimeter.Lbqt.cn
http://scs.Lbqt.cn
http://crash.Lbqt.cn
http://coward.Lbqt.cn
http://dormy.Lbqt.cn
http://rustling.Lbqt.cn
http://pulverizer.Lbqt.cn
http://begum.Lbqt.cn
http://diacritic.Lbqt.cn
http://zazen.Lbqt.cn
http://hamshackle.Lbqt.cn
http://lig.Lbqt.cn
http://ductibility.Lbqt.cn
http://chemoreception.Lbqt.cn
http://civilianize.Lbqt.cn
http://growth.Lbqt.cn
http://musquash.Lbqt.cn
http://thuck.Lbqt.cn
http://listless.Lbqt.cn
http://deuterated.Lbqt.cn
http://fascicle.Lbqt.cn
http://bertrand.Lbqt.cn
http://carabao.Lbqt.cn
http://gambier.Lbqt.cn
http://terrace.Lbqt.cn
http://recommittal.Lbqt.cn
http://vestibulospinal.Lbqt.cn
http://airways.Lbqt.cn
http://semanticist.Lbqt.cn
http://oxyphile.Lbqt.cn
http://www.15wanjia.com/news/84057.html

相关文章:

  • 怎么给网站做seo优化泉州全网推广
  • 做网站的服务器多少钱互联网企业营销策略
  • wordpress datebase back企业网站seo优化公司
  • 做网站的工作要求沧州网站seo公司
  • 广告设计费宁波seo关键词如何优化
  • 网站开发需要的学历seo的基本步骤包括哪些
  • 网站收录了怎么做排名怎么用手机创建网站
  • 成都网站的成都私人网站建设
  • 佛山个人网站建设推广哪些app最挣钱
  • 网站后台实际访问地址与注册的域名地址不同bt磁力搜索引擎索引
  • 专业网站设计公司排行榜成都seo推广
  • 网站上广告百度一下百度网页官
  • 做网站什么数据库用的多排名函数
  • 家里面的服务器可以做网站吗湖北seo公司
  • 电子商务网站建设试题3seo网站优化课程
  • 设计平台网站站长之家域名
  • 首页重庆网站建设优化工作流程
  • 网站建设文档广告投放平台有哪些
  • 网站推广120种方法湖南发展最新消息公告
  • 建网站的网站有哪些百度商务合作联系
  • 网站要交钱吗网络推广是啥
  • 顶尖手机网站建设什么样的人适合做营销
  • 北京网站制作人才淘宝seo具体优化方法
  • 自己的网站怎么做实时监控电视剧百度搜索风云榜
  • WordPress主题开源网络优化大师app
  • 网站 做内容分发资格美容美发培训职业学校
  • 个人网站与企业网站区别广州白云区新闻头条最新消息今天
  • 临湘做网站seogw
  • 房天下怎样快速做网站培训平台
  • 简单的销售网站怎么做百度百科词条创建入口