SpringBoot集成WebSocket

本文介绍了WebSocket的三种使用场景:单播、广播和组播,并详细讲解了如何在SpringBoot应用中集成WebSocket,包括配置文件、相关Java类及HTML页面的创建。通过集成,实现了服务器与客户端的实时通信,可用于聊天、公告发布等场景。
摘要由CSDN通过智能技术生成

WebSocket使用场景:

1、单播(Unicast)

单播是客户端与服务器之间的“一对一”的连接。是在一个单个的发送者和一个接收者之间通过进行的通信。应用于私信私聊等场景。

2、广播(Broadcast)

广播是服务器与客户端“一对所有”的连接方式。广播意味着服务器向每一个成员都投递一份数据包,不论这些主机是否乐于接收该数据包。应用于发布游戏公告等场景。

3、组播(Multicast)

组播是在服务端和客户端之间实现“一对一组”的连接方式。服务器可以向某些用户发送特定信息。应用于多人聊天室等场景。

Springboot集成websocket:

pom.xml

<!--webSocket-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

WebSocketApplication.java

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@Slf4j
@SpringBootApplication
public class WebSocketApplication {

    public static void main(String[] args) {
        SpringApplication.run(WebSocketApplication.class);
        log.info("启动成功>>>");
    }
}

WebSocketConfig.java

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Confi
SpringBoot集成WebSocket可以使用Spring框架提供的WebSocket API来实现。在SpringBoot中,使用WebSocket需要进行以下几个步骤: 1. 添加依赖:在pom.xml文件中添加spring-boot-starter-websocket依赖。 2. 创建WebSocket配置类:创建一个WebSocket配置类,用于配置WebSocket相关的参数,如注册EndPoint、消息编解码器、拦截器等。 3. 创建EndPoint:创建一个WebSocket的EndPoint类,用于处理WebSocket连接、消息发送、关闭等操作。可以通过实现Spring提供的WebSocketHandler接口或者继承TextWebSocketHandler来实现。 4. 添加拦截器:可以添加自定义的拦截器,用于处理WebSocket连接建立、消息发送等事件。 5. 配置WebSocket消息代理:使用Spring提供的消息代理,可以实现WebSocket消息的广播和点对点传递。 以下是一个简单的SpringBoot集成WebSocket的示例代码: 1. 添加依赖 ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2. 创建WebSocket配置类 ``` @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/myHandler") .addInterceptors(new WebSocketInterceptor()); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } ``` 3. 创建EndPoint ``` public class MyHandler extends TextWebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // 处理连接建立事件 } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { // 处理消息事件 } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { // 处理连接关闭事件 } } ``` 4. 添加拦截器 ``` public class WebSocketInterceptor extends HandshakeInterceptor { @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception { // 处理连接建立前事件 return true; } @Override public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception ex) { // 处理连接建立后事件 } } ``` 5. 配置WebSocket消息代理 ``` @Configuration @EnableWebSocketMessageBroker public class WebSocketMessageBrokerConfig implements WebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.enableSimpleBroker("/topic"); registry.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/myEndpoint") .setAllowedOrigins("*") .withSockJS(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值