spring websocket让页面实时获取数据

原创 2016年08月31日 17:49:01
1,依赖包加上
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-messaging</artifactId>
</dependency>

2,添加2个类

package com.streetlight.websocket;

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

	@Override
	public void registerStompEndpoints(StompEndpointRegistry registry) {
		registry.addEndpoint("/socket").withSockJS();
	}

	@Override
	public void configureMessageBroker(MessageBrokerRegistry registry) {
		registry.enableSimpleBroker("/topic");//给 /topic 命名空间下发数据
		registry.setApplicationDestinationPrefixes("/app");//客户端发向服务端请求路径的前缀
	}
}

package com.streetlight.websocket;

import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.stereotype.Controller;

@Controller
public class WebSocketController {
	@MessageMapping("/request")//接受客户端/app/request的请求
	@SendTo("/topic/*")
	public String greeting() throws Exception {
		return new String("WebSocketController");
	}
}
然后需要一个发送模版, 如下

@Compent
public class Handler{

    @Autowired
    private SimpMessagingTemplate mesTemp;

    public void updateAndSendMsg() {
        mesTemp.convertAndSend("/topic/hello", "helloworld");
    }
}
这时候在网页上需要添加连接websocket  server的代码

        <script type="text/javascript">
        $(function(){
            var socket = new SockJS('/项目名/socket');
            var stompClient = Stomp.over(socket);
            stompClient.connect({}, function(frame) {//
                stompClient.subscribe('/topic/hello', function(message){//注意这里的'/topic/hello'与上面Handler类updateAndSendMsg方法中的一样
                    console.log("msg :" + message)
                });
            });
        })
        </script>
当连接上server后stompClient.subscribe会监听和接受来自‘/topic/hello’的数据


到这里就配置完成了!我这边是java程序收设备发过来的UDP消息,一收到消息就调用Handler类中的updateAndSendMsg方法!

推荐个发包程序:netAssistant


参考 : http://www.lxway.com/4002114921.htm

spring boot集成WebSocket实时输出日志到web页面

前言碎语 今天来做个有趣的东西,就是实时将系统日志输出的前端web页面,因为是实时输出,所有第一时间就想到了使用webSocket,而且在spring boot中,使用websocket超级方便,阅...
  • ZHANGHUI3239619
  • ZHANGHUI3239619
  • 2017年11月22日 21:36
  • 675

【反ajax】webSocket实现实时推送功能

前天就说有时间要研究下webSocket这种实时推技术。已经用Comet实现了一个结合redis发布/订阅功能的小功能,其实还是有点复杂度的。今天有时间,遂了解了下webSocket,发现也没有想象中...
  • sqzhao
  • sqzhao
  • 2016年02月03日 09:16
  • 743

spring boot 集成websocket实现实时推送

websocket暂时能想到的应用是浏览器聊天和后台日志实时显示到前台。当后台启动程序后,等待前台连接,连接上之后,前后台就可以相互发送数据了。先贴上pom配置: org.sp...
  • alantuling_jt
  • alantuling_jt
  • 2017年11月06日 20:38
  • 577

通过WebSocket建立长链接实时获取数据

前段时间公司在做的一个项目,需要实时获取到最新的行情数据,行情数据每秒更新,当时考虑过用轮询方式获取,但是稍微推敲,很是不妥。当用户量多了,每个客户端都要去轮询服务器,给服务器造成的压力很大大,而且用...
  • qq_31588719
  • qq_31588719
  • 2017年04月29日 10:18
  • 3101

从web实时通信讲H5 WebSocket

传统的B/S通信通常我们打开一个浏览器访问网页时,都会向页面所在的服务器发送一个HTTP请求,然后web服务器确认请求并向浏览器做出响应。简单的说,就是一个请求对应的一个响应。然而这种方法对许多的应用...
  • qq_27905183
  • qq_27905183
  • 2017年04月25日 13:03
  • 1125

使用 WebSocket 和 Python 编写日志查看器

在生产环境运维工作中,查看线上服务器日志是一项常规工作。如果这项工作可以在浏览器中进行,而无需登录服务器执行 tail -f 命令,就太方便了。我们可以使用 WebSocket 技术轻松实现这一目标。...
  • zjerryj
  • zjerryj
  • 2017年08月11日 08:52
  • 1541

SpringMVC整合websocket实现消息推送及触发

1.创建websocket握手协议的后台 (1)HandShake的实现类 /** *Project Name: price *File Name: HandShake.java *Pac...
  • liuyunshengsir
  • liuyunshengsir
  • 2016年09月10日 17:20
  • 13447

通过webSocket实现app运动数据在网页实时显示

一概述## 在项目中有这样一个需要,app为智能心电跑步类app,在跑步时需要在网页端显示用户的跑步信息,包括跑步时长、心率、心电图等,其中心电图是需要实时更新的。当用户开始跑步时在网页上显示这些信...
  • u014673901
  • u014673901
  • 2017年09月25日 15:04
  • 1327

Java 使用Spring WebSocket 实现linux tailf 实时日志显示

前言最近需要做一个新功能,要求在浏览器可以看到服务器上的日志文件的内容,并且实时显示,也就是相当于要在浏览器实现Linux下的tail -f 的功能。 最开始的思路是使用Ajax定时向后端请求数据并...
  • wtopps
  • wtopps
  • 2017年11月13日 19:35
  • 332

websocket+d3.JS实现图标实时更新

服务端代码://var connection=require('./config.js').connection; // //connection.connect(); // //console.lo...
  • yangyiboshigou
  • yangyiboshigou
  • 2017年05月17日 17:50
  • 830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring websocket让页面实时获取数据
举报原因:
原因补充:

(最多只允许输入30个字)