html显示服务器实时数据,WebSocket实现数据库更新前台实时显示

经过一个小实例来实现数据库更新后,推送消息给前台,让前台进行相应操做。html

需求java

数据库更新以后服务器推送消息给前台,让前台作操做。(数据库的数据不是由服务器写入的)web

实现的话说到底都是用轮询,由于数据库的数据不是经过后台插入更新的,因此不管用什么办法,都须要循环地去读取数据库中的信息或者数据库的日志文件。区别就是,究竟是前台轮询,仍是后台轮询了。数据库

若是使用前台轮询,就是前台按期给后台发送请求,来对数据进行更新,用setInterval()就能实现。你F12看Network就能看到一会就有几十甚至几百个请求。。由于我也是第一次实现这样的功能,虽然对性能这方面没有什么研究,可是看到短期内这么多请求仍是以为心慌慌。api

因此想到了使用后台轮询,后台轮询的好处就是,前台不用一直发送请求给后台,而是等到后台发现数据更新了再提醒前台从新请求数据。这就须要用到WebSocket。浏览器

咱们日常使用的http链接,都是只能客户端向服务器发送请求。tomcat

而WebSocket的最大特色就是,服务器能够主动向客户端推送信息,客户端也能够主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。服务器

在查询资料的时候也查到能够用数据库的存储过程来实现,在存储数据的时候,调用Java的程序来进行通知。(由于还有一些处理方面的问题没有去实现)websocket

环境session

Server version : Apache Tomcat/7.0.69

Java version: 1.7.0_80

须要引入的jar包

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Spring Boot中的WebSocket并且实现数据库更新推送,需要进行以下步骤: 1. 添加WebSocket支持:在pom.xml中添加Spring Boot对WebSocket的支持: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2. 配置WebSocket:在Spring Boot中配置WebSocket非常简单,只需要添加一个配置类即可。创建一个类,并添加@EnableWebSocket注解和实现WebSocketConfigurer接口: ``` @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/myHandler").setAllowedOrigins("*"); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } ``` 3. 实现WebSocket处理程序:创建一个WebSocket处理程序类,用于处理WebSocket连接和消息的接收。在这个类中,可以订阅数据库更新事件,并在接收到更新事件时发送消息到WebSocket客户端。下面是一个简单的示例: ``` public class MyHandler implements WebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // 连接建立后订阅数据库更新事件 myService.subscribe(event -> { // 将更新事件发送到WebSocket客户端 session.sendMessage(new TextMessage(event.toString())); }); } @Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { // 处理WebSocket消息 } @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { // 处理传输错误 } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception { // 连接关闭 } @Override public boolean supportsPartialMessages() { return false; } } ``` 4. 在应用程序中使用WebSocket:在应用程序中,可以使用WebSocket客户端连接到WebSocket服务器,并接收来自服务器的消息。下面是一个简单的示例: ``` var socket = new WebSocket("ws://localhost:8080/myHandler"); socket.onopen = function(event) { console.log("WebSocket连接已建立"); }; socket.onmessage = function(event) { console.log("收到消息: " + event.data); }; socket.onclose = function(event) { console.log("WebSocket连接已关闭"); }; socket.onerror = function(event) { console.error("WebSocket连接出错"); }; ``` 这样就可以实现Spring Boot中的WebSocket,并且实现数据库更新推送了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值