SpringBoot整合WebSocket的使用

一个Java小白的学习之路 个人博客 youngljx.top

SpringBoot自动化配置后使用WebSocket很方便,通过@MessageMapping 注解配置消息接口,通过@SendTo或者SimpMessageingTemplate进行消息转发,通过简单的配置就能实现点对点,点对面的消息发送。

消息群发

1.添加依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
     <!--添加websocket 的前端库依赖-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>sockjs-client</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>stomp-websocket</artifactId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>webjars-locator-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.4.1</version>
        </dependency>

2.配置WebSocket

/**
 * @description:  消息代理配置,Spring提供了基于WebSocket的STOMP支持,STOMP是一个简单的可互操作的协议,通常用于通过中间服务器在客户端之间进行异步消息传递
 */
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
   

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
   
        //设置消息代理的前缀
        registry.enableSimpleBroker("/topic");
        //配置一个或多个前缀,过滤出需要被注解方法处理的消息
        registry.setApplicationDestinationPrefixes("/app");
    }

    /**
    * @Description:  注册Stomp端点 ,定义一个前缀为 /chat 的 端点,并开启sockjs支持
    * @Param: [registry]
    * @return: void
    * @Date: 2020/5/3-16:33
    */
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
   
        registry.addEndpoint("/chat").withSockJS();
    }
}

3.定义Controller

@Controller
public class GreetingController {
   

    /**
    * @Description:   @MessageMapping("/hello")注解的方法用来接收/app/hello路径发来的消息,
     *                在注解方法对消息进行处理后,再将消息转发到@SendTo定义的路径上,而@SendTo路径是一个前缀为
     *                /topic的路径,因此该消息会被交给消息代理broker,再由broker进行广播
    * @Param: [msg]
    * @return: com.ljx.websocket.bean.Message
    * @Date: 2020/5/4-17:16
    */
    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Message greeting(Message msg){
   
        return msg;
    }
}

4.创建聊天页面:

<!DOCTYPE html>
<html lang=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值