Wir haben eine html-Site und einen node.js-Server, der diese Website bedient. Die Website und der Server tauschen Daten mit socke.io aus. Das haben wir in der Dokumentation gefunden:
Ursprüngliche Standardeinstellungen sind *:*
Die Ursprünge, die eine Verbindung zum Socket.IO-Server herstellen dürfen.
Unsere html.site ist auf http://questionexample.com/page1
.
Nur diese Website darf eine Verbindung zu unserem Server herstellen. (Jeder kann sich jedoch mit dieser Website verbinden.)
Wie müssen wir die Ursprünge festlegen?
Wenn Sie den Quellcode von Socket.io kennen lernen, finden Sie folgende Zeilen:
%Vor% Wie Sie sehen, Socket.io nimmt Herkunft (oder Referer), die von dem Client kam, ruft Domain-Namen und Port,
und vergleicht mit der von Ihnen angegebenen Option origins
.
Die gültigen origins
-Werte sind also ( *
bedeutet "beliebig"):
testsite.com:80
http://testsite.com:80
http://*:8080
*:8080
testsite.com:* http://someotherdomain.com:8080
(mehrere Ursprünge getrennt durch Leerzeichen)
testsite.com:*/somepath
(socket.io ignoriert / somepath)
*:*
Und diese sind ungültig (weil keine Portnummer):
testsite.com
http://testsite.com
http://testsite.com/somepath
Beachten Sie auch, dass sub.testsite.com
als Ursprungswert angegeben wird und testsite.com
daher gültig ist.
Ich hatte ein ähnliches Problem.
Versuchen Sie, den Knoten im Produktionsmodus NODE_ENV=production node app.js
auszuführen.
Ich hatte diesen Code ( wie hier empfohlen ):
und Knoten rans im Entwicklungsmodus, so dass es einfach nicht funktionieren konnte. Nach dem Aktivieren des Produktionsmodus ist alles in Ordnung.
Ich weiß, dass es eine späte Antwort ist, aber vielleicht wird jemand anderes das benutzen
Tags und Links javascript node.js socket.io