博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Springboot中websocket跨域问题
阅读量:4093 次
发布时间:2019-05-25

本文共 2061 字,大约阅读时间需要 6 分钟。

WebSocketConfig文件

setAllowedOrigins()方法表示允许连接的域名,可实现websocket跨域访问

package com.test.testmanagement.config;import org.springframework.context.annotation.Configuration;import org.springframework.messaging.simp.config.MessageBrokerRegistry;import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;import org.springframework.web.socket.config.annotation.StompEndpointRegistry;import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;/* * 通过@EnableWebSocketMessageBroker注解开启使用STOMP协议来传输基于代理(message broker)的消息, * 这时控制器支持使用@MessageMapping * 就像使用@RequestMapping一样 */@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig implements WebSocketMessageBrokerConfigurer {    /**     * 将"/endpointWisely"路径注册为STOMP端点,这个路径与发送和接收消息的目的路径有所不同     * 这是一个端点,客户端在订阅或发布消息到目的地址前,要连接该端点,     */    @Override    public void registerStompEndpoints(StompEndpointRegistry registry) {//注册STOMP协议的节点(endpoint),并映射的指定的URL//        registry.addEndpoint("/webServer").withSockJS();        registry.addEndpoint("/api/interfaceAutoTopicServer").setAllowedOrigins("*").withSockJS();//注册两个STOMP的endpoint,分别用于广播和点对点        registry.addEndpoint("/logserver").withSockJS();//注册一个STOMP的endpoint,并指定使用SockJS协议        //registry.addEndpoint("/hello").setAllowedOrigins("*").withSokJS();        //这个和客户端创建连接时的url有关,其中setAllowedOrigins()方法表示允许连接的域名,withSockJS()方法表示支持以SockJS方式连接服务器。    }    /**     * 配置了一个简单的消息代理,如果不重载,默认情况下会自动配置一个简单的内存消息代理,用来处理以"/topic"为前缀的消息。     * 这里重载configureMessageBroker()方法,     * 消息代理将会处理前缀为"/topic"的消息。     */    @Override    public void configureMessageBroker(MessageBrokerRegistry registry) {//配置消息代理(Message Broker)        registry.enableSimpleBroker("/topic", "/user");//广播式应配置一个/topic消息代理        topic用来广播,user用来实现p2p    }    /* PS     * registry.enableSimpleBroker("/topic", "/user");这句话表示在topic和user这两个域上可以向客户端发消息。     * registry.setUserDestinationPrefix("/user");这句话表示给指定用户发送一对一的主题前缀是"/user"。     * registry.setApplicationDestinationPrefixes("/app");这句话表示客户单向服务器端发送时的主题上面需要加"/app"作为前缀。     */}

转载地址:http://qqtii.baihongyu.com/

你可能感兴趣的文章
serial也是见到很多次了,似乎它就是一种串行通信协议
查看>>
TBUS的一些信息
查看>>
专业和业余的区别就在于你在基础在基本功打磨练习花的时间
查看>>
通过mavlink实现自主航线的过程笔记
查看>>
Ardupilot飞控Mavlink代码学习
查看>>
这些网站有一些嵌入式面试题合集
查看>>
我觉得刷题是有必要的,不然小心实际被问的时候懵逼,我觉得你需要刷个50份面试题。跟考研数学疯狂刷卷子一样!
查看>>
我觉得嵌入式面试三要素:基础吃透+项目+大量刷题,缺一不可。不刷题是不行的。而且得是大量刷,刷出感觉套路,别人做题都做得是固定题型套路条件反射了,你还在那慢慢理解慢慢推是不行的,也是考研的教训。
查看>>
React Native之原理浅析
查看>>
Git操作清单
查看>>
基础算法
查看>>
前端面试
查看>>
React Hooks 完全指南
查看>>
nvm 和 nrm 的安装与使用
查看>>
Flutter Boost的router管理
查看>>
Android Flutter混合编译
查看>>
微信小程序 Audio API
查看>>
[React Native]react-native-scrollable-tab-view(进阶篇)
查看>>
Vue全家桶+Mint-Ui打造高仿QQMusic,搭配详细说明
查看>>
React Native应用部署/热更新-CodePush最新集成总结(新)
查看>>