2016-06-06 5 views
1

Ich habe ein Nodejs Chat-Programm auf meiner Website eingerichtet.Nodejs Chat-Programm 'io ist nicht definiert' Fehler nach https Setup über Letsencrypt

Dann als ich die Website von http zu https mit letsencrypt verschoben, das Chat-Programm funktioniert nicht mehr.

Hier sind die Server und Client:
https://synodins.com/apps/chat/server.js
https://synodins.com/apps/chat/client.html
und der Client-Skript direkt zu lesen:
https://synodins.com/apps/chat/client.txt

Das Problem ist, wie Sie Element auf inspizieren im Client sehen können, ist, dass ich Fehler erhalte:
ReferenceError: io ist nicht definiert

Ich habe bereits nach diesem Fehler gesucht und gefunden:
socket.io - ReferenceError: io is not defined
aber ich mache schon die Dinge so, wie er in der Antwort vorschlägt.

Ich bin nicht wirklich sicher, was das Problem ist, obwohl ich vermute, dass etwas falsch mit dem socket.io-Modul im Client geladen ist.

Interessanterweise kann ich den Chat auf meinem localhost ohne Probleme ausführen, aber wenn ich versuche, es auf dem Server auszuführen, erhalte ich diesen Fehler.

Kann jemand sehen, was das Problem ist?

+1

Es sollte auch eine andere Warnung sein: „[gesperrt] Die Seite unter https: //synodins.com/apps/chat/client.html hat unsicheren Inhalt von http://89.160.129.62:8002/socket.io/socket.io.js geliefert. " Das Problem ist, dass Sie js über http auf einer https-Site laden. –

+0

Ja. Aber wenn ich http://89.160.129.62:8002/ den Server verbindet, aber wenn ich tun https: //89.160.129.62: 8002/Ich bekomme 'sichere Verbindungen fehlgeschlagen'. Ist das nicht das Problem? Wie würde ich das reparieren? –

+0

Ich glaube nicht, dass ich https Anrufe über direkte IP-Adresse in Letsencrypt zulassen kann. –

Antwort

2

So schaute ich auf der Seite und ich fand 2 Ausgaben:

Es gibt ein Problem mit gemischtem Inhalt. Sie können nicht "http" verwenden, um eine Datei zu laden, wenn die Seite mit "https" geladen wurde. Es ist ein Sicherheitsproblem.

Zweitens bemerkte ich den Link zu der JS-Datei ist http://127.0.0.1/..., die derzeit auf Ihren lokalen Host zeigt.

Wenn Sie oben auf die Kommentare schauen, sieht es so aus, als ob Sie es irgendwo anders zeigen würden, aber ich schlage vor, das Tag so zu ändern, dass es auf dieselbe Quelldatei zeigt, aber mit https://... am Anfang der Quelle.

Hier ist der Fehler Ich habe, während die Website zugreifen:

Mixed Content: The page at 'https://synodins.com/apps/chat/client.html' 
was loaded over HTTPS, but requested an insecure script 
'http://127.0.0.1:8002/socket.io/socket.io.js'. This request has been 
blocked; the content must be served over HTTPS. 

Danach lassen Sie mich wissen, und ich werde weiter darum kümmern.

EDIT:

Wenn eine relative URL möglich ist, wird es immer bevorzugt. Bitte beachten Sie auch diese Antwort, die auf Ihre Frage zusammenhängt: https://stackoverflow.com/a/29835657/672229

+0

Ich habe Bower wie in der Antwort installiert, auf die Sie verweisen, und die Verwendung der Bower-Referenz scheint den io-Fehler zu entfernen und mir zu ermöglichen, das gesamte Client-Skript ohne Fehler auszuführen. Das Problem ist, es scheint nur noch nicht zu verbinden. Ich frage mich, ob es der io.connect-Anruf ist, wo ich http verwende. Aber ich kann nicht https verwenden, dann bekomme ich "sichere Verbindung fehlgeschlagen". kann hier sehen: https://89.160.129.62:8002 –

+0

Entschuldigung, dass IP: PORT-Adresse gibt mir den Fehler: "89.160.129.62 unerwartet die Verbindung geschlossen." Ich kann nicht darauf zugreifen. Gibt es eine Möglichkeit, dass Sie synodins.com updaten können und ich dort nachsehen kann? –

+0

Möglicherweise haben Sie Ihre socket.io nicht richtig konfiguriert. Bitte überprüfen Sie diese Frage und sehen Sie, ob socket.io dynamisch sein soll (beginnend mit "//www.example.com" anstelle von "http://www.example.com") ODER speziell setzen Sie socket.io, um https zu verwenden anstelle von http. http://stackoverflow.com/questions/6599470/node-js-socket-io-with-ssl –

0

Fügen Sie diese neueste Client-seitiges Script in Ihrem Code:

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script> 
Verwandte Themen