400 028 6601

建站动态

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

SpringBoot整合WebSocket的示例分析

这篇文章主要介绍了 Spring Boot整合WebSocket的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

目前成都创新互联公司已为上1000家的企业提供了网站建设、域名、虚拟主机成都网站托管、企业网站设计、西丰网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

Spring Boot整合WebSocket

  1. 添加依赖到pom.xml

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

  2. 添加配置文件

    @Configuration
    public class WebSocketConfig {
        @Bean
        ServerEndpointExporter serverEndpointExporter() {
            return new ServerEndpointExporter();
        }
    }

  3. 添加WebSocket的服务端

    @Component
    @ServerEndpoint("/ws/{username}")
    public class WebSocketEchoServer {
    
        @OnOpen
        public void onOpen(Session session, @PathParam("username") String username) {
            System.out.println("username = " + username + " is online.");
    
        }
    
        @OnClose
        public void onClose(Session session, @PathParam("username") String username, CloseReason closeReason) {
            System.out.println("username = " + username + " is offline.");
            System.out.println("Closing a WebSocket due to " + closeReason.getReasonPhrase());
        }
    
        // @OnMessage
        // public String onMessage(String message, Session session) throws IOException {
        //     System.out.println("received message=" + message);
        //     return "echo " + message;
        // }
    
        @OnMessage
        public void onMessage(String message, Session session) throws IOException {
            System.out.println("received message=" + message);
            session.getBasicRemote().sendText("echo " + message);
        }
    
        @OnError
        public void onError (Session session, Throwable throwable) {
            System.out.println("发生错误");
            throwable.printStackTrace();
        }
    
        public void boardCast(Message message) {
            // todo: 遍历所有的session,给所有session发送消息
    
        }
    }

  4. 测试页面(WebSocket Client)

    
    
    
        
        测试页面
        
    
    
    
    发送
    
    
    
    

    这里使用一个非常简单的测试页面,只包含一个输入框和一个发送按钮。

    当我们点击按钮的时候,就把输入框中的内容,发送到服务端。

    测试页面使用的服服务端的URI是"ws://localhost:8080/ws/tom",其中“tom”对应的参数username。

常用注解说明

@ServerEndpoint("/hello") 
public class MyEndpoint { }

上诉代码将发布一个相对路径是hello的Endpoint。路径可以包含在后续方法调用中使用的路径参数;例如,例如,/hello/{userid}是有效路径,{userid}的值可以在方法调用中使用@PathParam注释获得。

默认端口8080,WebSocket 可以使用如下地址访问:ws://localhost:8080/mycontextroot/hello

感谢你能够认真阅读完这篇文章,希望小编分享的“ Spring Boot整合WebSocket的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


新闻标题:SpringBoot整合WebSocket的示例分析
链接URL:http://mzwzsj.com/article/pdjcjj.html

其他资讯

让你的专属顾问为你服务