2017-04-05 6 views
0

Ich habe eine Anwendung mit einer Seite, die einen websocket Endpunkt mit diesem abonnieren:SockJS + Stomp + SpringBoot = Ausgabe

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); 
        .... 
       }); 
      }); 

Diese App laufen auf Himbeere und alles funktioniert gut, wenn die Himbeere auf Internet verbunden ist. Aber in einem lokalen Netzwerk (kein Internet) Ich habe diese

enter image description here

My Back-End-conf ist:

@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") 


    } 
} 

Ich verstehe nicht, warum ein CORS haben (nehme ich an) Problem .. Und Die Seite wird für immer neu geladen.

Vielen Dank im Voraus

Luis

Antwort

0

Ich hatte dieses CORS Verhalten in meiner Anwendung, wenn ich eine bestimmte IP verwendet.

application.properties

server.address: 192.168.1.90 

Nach dem Entfernen server.address aus den application.properties die Anwendung wie erwartet funktioniert. Wenn jemand die Ursache dafür kennt, lass es mich wissen. Ich hätte erwartet, dass

registry.setAllowedOrigins("*") 

alle CORS Verhalten als document here entfernen würde

Verwandte Themen