利用websockte做实时推送的小总结,好记性不如烂笔头,在此记录及分享一下!
java后台需要引入
这个包,然后就是接受和推送信息,
@MessageMapping("aaa")
//接受传来消息的路径
@SendTo("/topic/brocast")
//@SendTo广播消息出去
public
String show1(String
msg) { return
msg;}
但是因为配置不熟,所以选择了一个最简单的方法进行推送,但是没实现接受
@Configuration public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer{ @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/websocket") .setAllowedOrigins("*") .withSockJS(); } }
这个demo很简单,引入websockte包之后,配置一下Endpoint,再写一个controller,然后引入SimpMessagingTemplate,之后就可以运行项目然后触发这个请求就会有消息广播出去,这样就能推送消息到订阅这个/topic/pull路径上,
前端那里只需订阅这个/topic/pull 这个路径就可以实时接受消息了!
前端需要引入三个js,分别是jquery.min.js,sockjs.min.js,stomp.min.js,具体代码如下,假设页面是Hello.html
var stompClient = null;
var socket = new SockJS('http://localhost:端口号/websocket');
stompClient = Stomp.over(socket); stompClient.connect({}, function() { stompClient.subscribe('/topic/pullLogger', function(event) { console.log(event) }); });现在启动项目,访问这个Hello.html页面,然后发送 http://localhost:端口号/show/123 ,这时123会被推送到前端页面,
可以F12查看控制台是否打印了123,到此实时推送的简单demo完成!
这里找到了一个比较详细的文章:https://www.jianshu.com/p/60799f1356c5