• 服务器推送


    服务器推送

    1. ajax 轮询 不建议
    2. websocket 多用于双方复杂数据通讯
    3. sse (server send event) 服务器主动推送
    • h5 新标准
    • 本质是保持一个 http 长连接,轻量级协议

    sse 使用

    • html 端
    <body>
    <script>
        var source = new EventSource("http://127.0.0.1:8080/sse/getInfo");
        source.onmessage = function (ev) {
            console.log(ev.data);
        }
    </script>
    </body>
    
    • server 端
      • 注意 返回的数据格式必须为下面这种格式,"data:"+你的数据+" "; "data"还有其他的格式, “data”, “event”, “id”,“retry”
      @RestController
      @RequestMapping("/sse")
      public class SSEController {
          @CrossOrigin
          @RequestMapping(value = "/getInfo", produces = "text/event-stream;charset=UTF-8")
          public String push(){
              try {
                  TimeUnit.SECONDS.sleep(1);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
              // 返回的数据格式必须为下面这种格式,"data:"+你的数据+"
      
      ";  "data"还有其他的格式, “data”, “event”, “id”, “retry”
              // 不然onmessage方法无法执行。
              return "data:pushing: " + String.valueOf(System.currentTimeMillis()) + "
      
      ";
          }
      }
      
      
  • 相关阅读:
    权限和分组
    验证与授权
    CSRF、XSS、clickjacking、SQL 的攻击与防御
    上下文处理器及中间件
    类和实例
    偏函数
    生成器
    迭代 复习
    函数调用 复习
    复习 条件判断,循环
  • 原文地址:https://www.cnblogs.com/scp-166/p/11942157.html
Copyright © 2020-2023  润新知