经过一个小实例来实现数据库更新后,推送消息给前台,让前台进行相应操做。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包