SockJS + Stomp + SpringBoot =问题

时间:2017-04-05 19:06:03

标签: spring-boot groovy stomp spring-websocket sockjs

我有一个应用程序,其中包含一个订阅websocket端点的页面:

 var socket = new SockJS("/hello");
            stompClient = Stomp.over(socket);
            stompClient.connect({}, function (frame) {
                stompClient.subscribe('/topic/nextticket', function (ws_response) {
                    var data = JSON.parse(ws_response.body);
                    ....
                });
            });

此应用程序在Raspberry上运行,当覆盆子连接到互联网时,一切正常。但在本地网络(没有互联网)我有这个

enter image description here

我的后端conf是:

@Configuration
@PropertySource("file:/etc/app.properties")
@EnableWebSocketMessageBroker
class MessageBroker extends AbstractWebSocketMessageBrokerConfigurer {

    @Autowired
    Environment env

    @Override
    void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic")
        config.setApplicationDestinationPrefixes("/app")
    }



    @Override
    void registerStompEndpoints(StompEndpointRegistry registry) {

        def ip = env.getProperty("kiosk.ip") ? env.getProperty("kiosk.ip") as String : "192.168.1.90"

        registry.addEndpoint("/hello")
                .setAllowedOrigins("*")
                .withSockJS()
                .setClientLibraryUrl("http://${ip}:8080/js/sockjs.js")


    }
}

我不明白为什么有一个CORS(我想)问题..并且页面会永远重新加载。

提前致谢

路易斯

1 个答案:

答案 0 :(得分:0)

每当我使用特定的IP时,我的应用程序中就会出现这种CORS行为。

<强> application.properties

server.address: 192.168.1.90

从application.properties 中删除server.address后,应用程序按预期工作。如果有人知道原因,请告诉我。我原以为

registry.setAllowedOrigins("*")

会将所有CORS行为删除为document here