028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

SpringBoot如何使用WebSocket实现群发消息

小编给大家分享一下SpringBoot如何使用WebSocket实现群发消息,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

创新互联公司是一家专业提供盈江企业网站建设,专注与网站设计制作、成都网站设计、H5网站设计、小程序制作等业务。10年已为盈江众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,已被 W3C 定为标准。使用 WebSocket 可以使得客户端和服务器之间的数据交换变得更加简单。在 WebSocket 协议中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行双向数据传输。

SpringBoot如何使用WebSocket实现群发消息

特点

一、添加依赖


    org.springframework.boot
    spring-boot-starter-websocket

二、配置 WebSocket

Spring 框架提供了基于 WebSocket 的 STOMP 支持,STOMP 是一个简单的可互操作的协议,通常被用于通过中间服务器在客户端之间进行异步消息传递。

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
 
    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        // 设置消息代理的前缀,如果消息的前缀为"/topic",就会将消息转发给消息代理(broker)
        // 再由消息代理广播给当前连接的客户端
        config.enableSimpleBroker("/topic");
        // 下面方法可以配置一个或多个前缀,通过这些前缀过滤出需要被注解方法处理的消息。
        // 例如这里表示前缀为"/app"的destination可以通过@MessageMapping注解的方法处理
        // 而其他 destination(例如"/topic""/queue")将被直接交给 broker 处理
        config.setApplicationDestinationPrefixes("/app");
    }
 
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // 定义一个前缀为"/chart"的endpoint,并开启 sockjs 支持。
        // sockjs 可以解决浏览器对WebSocket的兼容性问题,客户端将通过这里配置的URL建立WebSocket连接
        registry.addEndpoint("/chat").withSockJS();
    }
}

三、服务端代码

根据上面 WebSocketConfig 的配置,@MessageMapping("/hello") 注解的方法将用来接收“/app/hello”路径发送来的消息,在注解方法中对消息进行处理后,再将消息转发到 @SendTo 定义的路径上。而 @SendTo 路径是一个前缀为“/topic”的路径,因此该消息被交给消息代理 broker,再由 broker 进行广播。

@Controller
public class DemoController {

    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Message greeting(Message message) throws Exception {
        return message;
    }

}
@Data
public class Message {

    private String name;
    
    private String content;

}

四、前端代码 

在 resources/static 目录下创建 chat.html 页面作为聊天页面。




    
    群聊
    
    
    
    


    请输入用户名:     
    连接     断开连接
    
        请输入聊天内容:              
    发送              群聊进行中...
    

五、验证结果

我们请求地址:http://127.0.0.1:8086/chat.html

登录用户:piao

SpringBoot如何使用WebSocket实现群发消息

登录用户:admin

SpringBoot如何使用WebSocket实现群发消息

看完了这篇文章,相信你对“SpringBoot如何使用WebSocket实现群发消息”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站栏目:SpringBoot如何使用WebSocket实现群发消息
文章地址:http://www.tsicrk.com/article/ipioei.html

其他资讯

让你的专属顾问为你服务

1.7472s