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:)
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.
Tags und Links javascript https websocket firefox localhost