In meiner node.js / Express.js App muss ich Parameter mit der Verbindung socket.io übergeben (sah das in einem anderen Beitrag).
Auf der Client-Seite habe ich etwas wie:
Bearbeiten
%Vor%Auf der Serverseite:
Bearbeiten
%Vor%Aber nichts in der Konsole.
Gibt es einen anderen Weg, das zu erreichen?
edit2
Dies ist der vollständige Code für den Client:
%Vor%Und der vollständige Code für die Serverseite:
%Vor% Mit der Funktion socketImageTransfer
:
Schätzen Sie Ihre Hilfe
Ja, da ist es.
1) query
ist wie GET
parameter, also ersetzen Sie "param:value"
durch "param=value"
(wenn Sie mehrere Parameter übergeben möchten, tun Sie das wie gewohnt mit URL: param=value&some_other_param=test
)
2) Es gibt einen einfacheren und zuverlässigeren Weg, um den Abfrageparameter in handshaken
handler:
connection
object zuzugreifen)
%Vor%
Bearbeiten:
Nach dem Erlernen Ihres vollständigen Codes habe ich herausgefunden, was das Problem verursacht. Das Problem ist, dass Sie wahrscheinlich die Grundidee von Socket.IO Namespaces falsch verstanden haben.
Ich nehme an, Sie haben mehrere Socket.IO Verbindungen ( io.connect
Anrufe) innerhalb einer Seite, richtig? Normalerweise genügt eine einzige Verbindung. Dein Fehler ist, dass du io.connect
bei einem Mausereignis aufruft, aber du solltest einmal bei document.ready
und dann nur bei emit
ting anrufen.
Sehen Sie sich den folgenden Code (Client-Seite) an:
%Vor%Serverseitiger Code:
%Vor% Wenn Sie einen Namensraum haben, sollte es funktionieren. Ich weiß nicht wirklich, ob es ein Fehler von Socket.IO oder ein Ergebnis der unsachgemäßen Verwendung von Namespaces war, aber das Ändern von Code, um nur einen Namespace zu machen, sollte den Trick machen. In diesem Fall müssen Sie also beim Handshake keine Abfrageparameter übergeben. Um die App sicherer zu machen, müssen Sie den Abfrageparameter verwenden. Siehe Ссылка (für Socket.io 0.9)
Ich hoffe, meine Antwort hilft Ihnen. Viel Glück!
Tags und Links javascript node.js socket.io express