2017-10-09 14 views
0

Ich habe zwei Instanzen von Spring Boot-Dienste ausgeführt. sagen wir "app1: 8080" und eine andere Instanz "app2: 7070". Wo als 'app1: 8080' hostet eine HTML-Seite, die versucht, eine Web-Socket-Verbindung mit 'app2: 7070' zu verbinden, wann immer es gestartet wird. In etwa so: var webSocket = neuer WebSocket ("ws: // app2: 7070/socket-endpoint");Cross Domain WebSocket-Verbindung [Spring Boot]

Aber ich bekomme immer 403 Fehlermeldung. Ich habe über die Cross-Domain gelesen und habe versucht, die 'app1: 8080' in 'app2: 7070' zu registrieren. Aber konnte keine Lösung finden.

Server-Technologie: Federverschluß Client-Technologie: HTML5

Antwort

1

Vermutlich resultiert dies aus Quer Herkunft Anrufen. Sie haben verschiedene Möglichkeiten, diese zu lösen:

  • einen Load Balancer wie nginx vor beiden Anwendungen setzen und sie dienen mit der gleichen Basis-URL
  • die HTML aus der gleichen Anwendung dienen (die einfachste Lösung, wenn sie ein kleine Anwendung)
  • oder erlauben Quer Herkunft Anrufe in app2 von app1 in Ihrem Fall, wie here dokumentierte
+0

kann nicht dazu dienen, sowohl die Anwendungen mit der gleichen uRL wie beide sind eine unabhängige Anwendung weder aus demselben dienen Anwendung {wie in der Frage erläutert}. können Sie bitte versuchen, ein Beispiel für Cross-Ursprungsanrufe zu teilen, und wird es auch für einen "wss" Anrufe funktionieren? –

+1

diese CORS config [hier] (https://spring.io/blog/2015/06/08/cors-support-in-spring-framework) sollte auch von der Websocket –

+0

dank, kann das zu erreichen. Aber ich bin mir immer noch nicht sicher über das "wss". –