springboot websocket使用过程中的一些总结

利用websockte做实时推送的小总结,好记性不如烂笔头,在此记录及分享一下!

java后台需要引入

springboot websocket使用过程中的一些总结

这个包,然后就是接受和推送信息,

@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();
    }
}

springboot websocket使用过程中的一些总结

这个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