Wie kann eine Webseite, die über https geladen wird, eine Verbindung zu einem WebSocket-Server herstellen, der auf localhost läuft?

8

Ich versuche, eine Webseite zu erstellen, die eine Verbindung zu einem client-lokalen WebSocket-Server herstellen kann. Die Idee ist, den JavaScript-Client, der im Browser ausgeführt wird, als eine Art Proxy zu verwenden, um die Kommunikation zwischen dem entfernten Webserver und der lokal installierten Client-Anwendung, die den WebSocket-Dienst implementiert, zu ermöglichen.

Grundsätzlich würde ich also eine Webseite aus Ссылка laden, die JavaScript enthält, das einen neuen WebSocket für ws: // öffnet. localhost: 1234 / Kontext. Dies funktioniert, solange die Webseite über http aufgerufen wird. Sobald https verwendet wird, verweigern Firefox und Internet Explorer die Verbindung und der WebSocket-Konstruktor löst eine Ausnahme aus (SecurityError, Code 18). Nun fand ich bereits Hinweise von Mozilla, dass https-Sites nur sichere (wss: //) WebSockets verwenden sollten und einfache HTTP-Sites nur einfache WebSockets verwenden sollten ( link ). Aber ich sehe das Sicherheitsproblem nicht wirklich, wenn ich von einem https-Kontext zu localhost verbinde. Außerdem funktioniert das wie ein Charme für Chrome, Opera und Safari.

Die eigentliche Frage lautet also: Gibt es eine Möglichkeit, dieses Problem zu umgehen? Wie zum Beispiel die Einführung eines Nicht-HTTPS-Kontexts innerhalb der Webseite oder etwas Ähnliches, um alle Browser dazu zu bringen, sich über eine https-gelieferte Webseite mit ws: // localhost zu verbinden?

Vielen Dank im Voraus! Ich bin nicht gerade ein Webentwickler, also ist diese Art von browserspezifischem Verhalten nicht wirklich in meinen Fachgebieten:)

    
maddes 28.11.2013, 21:21
quelle

1 Antwort

1

Sie müssen das Zertifikat zuerst akzeptieren.

Du kannst das tun, indem du in deinem Fall einfach zu https://localhost:1234/context gehst. Sobald dies erledigt ist, können Sie die wss URL in Ihrer Frage verwenden.

    
user1382306 14.01.2014 02:49
quelle