zoukankan      html  css  js  c++  java
  • Spring 中使用 WebSocket 笔记

    编写 WebSocket 消息处理类,比较简单的方式就是直接继承AbstractWebSocketHandler,并覆写其中的处理方法,下面为一个简单的 demo

    public class WebSocketHandler extends AbstractWebSocketHandler {
    ​
        @Override
        protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
            logger.info("Received message: " + message.getPayload());
            TimeUnit.SECONDS.sleep(2);
            session.sendMessage(new TextMessage("Polo!"));
        }
        
    }

    启用 WebSocket,并映射消息处理器

    @Configuration
    @EnableWebSocket
    public class WebSocketConfig implements WebSocketConfigurer{
    ​
        // 要映射的 WebSocket 消息处理器(类)
        @Bean
        public WebSocketHandler webSocketHandler() {
            return new WebSocketHandler();
        }
        
        // 映射消息处理器到对应的路径
        @Override
        public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
            registry.addHandler(webSocketHandler(), "/macro");
            
        }
    ​
    }

    之后即可在 javascript 端进行互相通信,demo 如下

    var url = 'ws://' + window.location.host + '/demo/macro';
    var sock = new WebSocket(url);
    sock.onopen = function() {
        console.log("Opening");
        sayMarco();
    }
            
    sock.onmessage = function(e) {
        console.log("Received messaage: " + e.data);
        setTimeout(function(){sayMarco()}, 2000);
    }
            
    sock.onclose = function() {
        console.log("Closing");
    }
            
    function sayMarco() {
        console.log('Sending Marco!');
        sock.send('Marco!');
    }
  • 相关阅读:
    [PTA练习] 愿天下有情人都是失散多年的兄妹(25分)
    sql server远程连接非1433端口
    java把double转化为long型
    StringUtils工具类
    JfreeChart折线图
    Log4j配置
    Ibatis,Spring整合(注解方式注入)
    Spring中的autowire属性(转)
    MyBatis3入门样例
    struts2 ibatis Spring系统架构图
  • 原文地址:https://www.cnblogs.com/zawier/p/7368381.html
Copyright © 2011-2022 走看看