SpringBoot2.1.X 服务端推送(四)

服务端常用推送技术介绍,如websocket,sse轮询等

        1、客户端轮询:ajax定时拉取 

        2、服务端主动推送:WebSocket  (实时)
            全双工的,本质上是一个额外的tcp连接,建立和关闭时握手使用http协议,其他数据传输不使用http协议
            更加复杂一些,适用于需要进行复杂双向数据通讯的场景

        3、服务端主动推送:SSE (Server Send Event)
            html5新标准,用来从服务端实时推送数据到浏览器端,
            直接建立在当前http连接上,本质上是保持一个http长连接,轻量协议
            简单的服务器数据推送的场景,使用服务器推送事件    
            学习资料:http://www.w3school.com.cn/html5/html_5_serversentevents.asp

 服务端主动推送SSE  (只是推送页面)

package net.hlx.myspringboot.webflux_demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/sse/my")
public class SSEController {

    @RequestMapping(value = "/test", produces = "text/event-stream;charset=UTF-8")
    public String push() {
    	  
          try {
              Thread.sleep(1000); 
              //第三方数据源调用
          } catch (InterruptedException e) {
              e.printStackTrace();
          }

          return "data:股票行情" + Math.random() + "\n\n";
    }
}

html页面

<script type="text/javascript">  
//需要判断浏览器支不支持,可以去w3c进行查看

var source = new EventSource('sse/my/test');
//监听
source.onmessage = function (event) {
  console.info(event.data);  //控制台显示
    // 显示在页面
  document.getElementById('result').innerText = event.data
};

</script>  
</head>

<body>
模拟股票行情
    <div>测试服务端主动推送SSE</div>
    <div id="result"></div>  
</body>


</html>

启动运行:http://localhost:8080/index.html

 

 

Spring Boot是一个开发微服务的框架,MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议。在Spring Boot中,可以通过使用MQTT协议来实现服务端的消息推送和订阅。 首先,在Spring Boot项目中引入相应的MQTT依赖,比如paho-mqtt-client。然后,需要配置MQTT的连接参数,包括服务器地址、端口、客户端ID等。可以通过在application.properties文件中进行配置,或通过编写Java代码进行配置。 接下来,创建一个MQTT服务端对象,并设置相应的回调函数。回调函数是在特定事件发生时触发的代码,比如连接成功、收到消息等。可以在回调函数中编写处理逻辑,比如将消息推送给订阅者。 在服务端需要推送消息时,可以调用MQTT服务端对象的publish方法,将消息发送给特定的主题。订阅者可以通过订阅相应的主题来接收消息。服务端发布消息后,订阅了该主题的客户端会收到相应的消息。 为了演示服务端推送消息的功能,可以创建一个Spring Boot的控制器,并在其中编写相应的逻辑。比如,可以创建一个/publish的接口,接收消息并将其发布给指定的主题。 需要注意的是,为了保证消息的可靠性,可以在服务端实现一些机制,比如消息的持久化、重发等。另外,还可以对消息进行加密和认证,以确保消息的安全性。 总结来说,通过使用Spring Boot和MQTT协议,可以实现服务端的消息推送和订阅功能。这对于实时通信、消息传递、数据同步等场景非常有用。希望以上回答能帮到你。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值