PHP-Editor Xinyi führt Sie in die Spring-Serverarchitektur mit SSL und WebSockets ein. In der heutigen Internetumgebung sind Sicherheit und Echtzeit wichtige Aspekte für Serveranwendungen. Die Verwendung von SSL (Secure Sockets Layer) kann die Sicherheit der Datenübertragung gewährleisten, während die WebSockets-Technologie bidirektionale Kommunikationsfunktionen in Echtzeit bietet. Das Spring Framework ist ein leistungsstarkes und flexibles Java-Entwicklungsframework, das umfassende Lösungen zum Aufbau einer skalierbaren Serverarchitektur bietet. Durch die Kombination von SSL und WebSockets kann die Spring-Serverarchitektur sichere und zuverlässige Echtzeit-Kommunikationsdienste bereitstellen, um den Anforderungen moderner Anwendungen gerecht zu werden.
Ich habe ein Server-Backend für eine von mir erstellte Anwendung geschrieben. Die Anwendung stellt über das https-Protokoll eine Verbindung zum Backend her und öffnet außerdem einen Websocket über das WSS-Protokoll. Die App stellt Anfragen über http und empfängt Push-Benachrichtigungen über Websocket. Eine Sache, die ich hinzufügen möchte, ist, dass mein Server hinter Haproxy steht, um eine horizontale Skalierung zu ermöglichen. Ich habe ein von einem Webserver bereitgestelltes Zertifikat erworben. Ich verwende kein selbstsigniertes Zertifikat.
Websockets trennt ständig die Verbindung. Nach einigen Experimenten scheint es, dass das Deaktivieren von SSL auf dem Spring Boot-Server dieses Problem löst. Soweit ich weiß, wird es für Anwendungen dringend empfohlen, SSL und https zu verwenden, um eine Verbindung zum Backend herzustellen, aber dieser Ansatz scheint mit Websockets nicht zu funktionieren. Wie lässt sich dieses Problem am besten lösen? Idealerweise möchte ich, dass die Anwendung Anfragen über https stellt und eine WebSocket-Verbindung ohne Verwendung von SSL herstellt, es sei denn, es gibt eine Lösung für das Verbindungstrennungsproblem. Ist der Frühling okay?
Wenn ich das Problem der Websocket-Trennung nicht lösen kann, besteht meine nächste Idee darin, einen weiteren Spring-Boot-Server zu erstellen, der sich ausschließlich der Verarbeitung von Websockets widmet. Es wäre jedoch besser, wenn ich einen einzigen Server für die Verarbeitung von https-Anfragen und Websockets verwenden könnte. Was ist die beste Architektur, um dieses Problem zu lösen?
Endlich habe ich die Lösung gefunden. Es führt einen weiteren Tomcat-Connector auf Port 8080 aus und verwendet http(ws) anstelle von https(wss), wenn eine Verbindung zum Websocket hergestellt wird, und https, wenn Serveranfragen gestellt werden.
Das obige ist der detaillierte Inhalt vonSpring-Server-Architektur mit SSL und WebSockets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!