spring boot webSocket

  • pom导入
<!--websocket-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
  • 在典型的Spring WebSocket应用程序中,用户将实现WebSocketMessageBrokerConfigurer。例如,配置下所示:
@Configuration
@EnableScheduling
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

	@Override
	public void registerStompEndpoints(StompEndpointRegistry registry) {
		registry.addEndpoint("/messages").withSockJS();
	}

	@Override
	public void configureMessageBroker(MessageBrokerRegistry registry) {
		registry.enableSimpleBroker("/queue/", "/topic/");
		registry.setApplicationDestinationPrefixes("/app");
	}
}

 

  1. @Configuration表示它是Spring配置类。

  2. @EnableScheduling表示定时任务开启。和@Scheduled一起使用

  3.  @EnableWebSocketMessageBroker支持由消息代理支持的WebSocket消息处理。

  4. 它首先调用enableSimpleBroker()以启用一个简单的基于内存的消息代理,以在前缀为“/ topic”的目标上将问候消息传回客户端。它还为绑定了@MessageMapping注释方法的消息指定“/ app”前缀。此前缀将用于定义所有消息映射; 例如"/ app / "

  • 使用Spring Session的WebSocket 配置(spring session将session存入redis 提高集群效率和共享)
  • spring session 参考 链接
@Configuration
@EnableScheduling
@EnableWebSocketMessageBroker
public class WebSocketConfig
		extends AbstractSessionWebSocketMessageBrokerConfigurer<Session> { 

	@Override
	protected void configureStompEndpoints(StompEndpointRegistry registry) { 
		registry.addEndpoint("/messages").withSockJS();
	}

	@Override
	public void configureMessageBroker(MessageBrokerRegistry registry) {
		registry.enableSimpleBroker("/queue/", "/topic/");
		registry.setApplicationDestinationPrefixes("/app");
	}
}

spring官方websocket示例应用程序 

  • 尝试使用该应用程序。使用以下信息进行身份验证:
  • 用户名 rob

  • 密码 123456

  • 现在单击“ 登录”按钮。您现在应该被认证为用户rob
  • 打开隐身窗口并访问http:// localhost:8080/系统 
  • 系统将提示您登录表单。使用以下信息进行身份验证:
  • 用户名 luke

  • 密码 123456

  • 现在从rob发送消息给luke。该消息应该出现。
  • 等待两分钟,然后再尝试从rob发送消息给luke。您将看到不再发送该消息。

 

为什么两分钟?Spring会话将在60秒后到期,但Redis的通知不能保证在60秒内发生。为了确保套接字在合理的时间内关闭,Spring Session每分钟在00秒运行一次后台任务,强制清除任何过期的会话。这意味着在WebSocket连接终止之前,您需要等待最多两分钟。

  • 尝试访问http:// localhost:8080/系统 将提示您再次进行身份验证。这表明会话正常到期。
  • 现在重复相同的练习,但不是等待两分钟,而是每隔30秒从每个用户发送一条消息。您将看到消息继续发送。尝试访问http:// localhost:8080/系统 不会再次提示您进行身份验证。这表明会话保持活跃。

 

  • js文件下载 
  1. stomp.min.js
  2. sockjs.min.js

 持续更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot WebSocketSpring Boot框架的一个模块,用于在Web应用程序中支持WebSocket协议。它提供了一组简单的配置和使用方式,使得开发人员可以轻松地在Web应用程序中使用WebSocket。可以通过Spring Boot的自动配置特性来配置和使用WebSocket,也可以通过Spring提供的注解和API来更灵活地控制WebSocket的工作方式。 ### 回答2: Spring boot websocket 是一种新型的应用程序通信方式,通过客户端和服务器端之间的实时双向通信,支持实时性强、交互性高的应用场景,可以为用户提供更加稳定、高效和安全的应用使用体验。 Spring boot websocket 是基于一种名为 WebSocket 的网络协议来实现的,并且在 Spring boot 中集成了对 WebSocket 的支持,使得开发者可以更加方便地实现 WebSocket 功能。它的主要特点有以下几点: 1. 实时性强:Spring boot websocket 可以实现实时通信,随时更新信息。 2. 双向通信:Spring boot websocket 可以实现双向通信,客户端与服务器端可以相互发送信息。 3. 交互性高:Spring boot websocket 具有很高的交互性,支持多种数据格式的交互,可以用于在线聊天、游戏、交易等应用场景。 4. 高效性:Spring boot websocket 采用异步消息处理的方式来实现通信,从而保证通信的高效性。 Spring boot websocket 的应用场景非常广泛,比如可以应用于在线多人游戏、在线聊天、数据监控、实时交易等领域。由于 Spring boot websocket 具有实时性强、交互性高、可扩展性强、安全性好等特点,因此在目前的互联网应用场景中越来越受到重视。 总之,Spring boot websocket 是一种先进的应用程序通信方式,能够为用户带来更加丰富、高效、安全的应用体验,拥有广泛的应用前景和发展潜力。 ### 回答3: Spring Boot WebSocket是什么? Spring Boot WebSocket是一种基于WebSocket协议的通信方式,能够实现前后端实时通讯,使得前端能够实时响应后端的数据推送。WebSocket协议是一种全双工通信协议,通过Web套接字(WebSocket)技术使得浏览器和服务器之间可以建立持久性连接,从而使得前后端实时通讯变成了可能。Spring Boot WebSocket基于Spring Framework提供的WebSocket API实现。 为什么要使用Spring Boot WebSocket? 通过使用Spring Boot WebSocket,开发人员可以实现双向实时通讯的功能。这在一些需要实时通知、实时查询的场景下非常有用。例如:在线聊天、在线游戏等。使用WebSocket通讯相较于传统的HTTP通讯,具有低延迟、实时性强等优势。此外,Spring Boot WebSocket相较于其他实现方式,具有开发简单、易于维护、可扩展等特点,因此越来越多的开发人员和公司选择使用Spring Boot WebSocket。 如何在Spring Boot中实现WebSocket? 在Spring Boot中实现WebSocket通讯,需要使用Spring Framework提供的WebSocket API。首先,需要在pom.xml中添加spring-boot-starter-websocket依赖。然后编写WebSocketConfig类,该类需要继承AbstractWebSocketMessageBrokerConfigurer类,并重写其方法。在该类中配置消息代理、消息端点等信息。在Spring Boot中使用WebSocket也可以通过@EnableWebSocketMessageBroker注解来实现,该注解会隐式注册一个DefaultAnnotationHandlerMapping和一个AnnotationMethodHandlerAdapter,并自动配置WebSocket支持的消息代理。最后,对于消息处理器需要使用@MessageMapping注解进行标注,这样就能够使得框架知道什么方法应该处理什么消息。至此,就已经完成了Spring Boot WebSocket的开发和配置。 总的来说,Spring Boot WebSocket是一种比较优秀的实时通讯技术,通过使用它可以让开发人员实现双向实时通讯。在实际开发中,可以根据实际需求选择使用WebSocket或其他通讯方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值