socket.io / Parameter bei Verbindung

8

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 :

%Vor%

Schätzen Sie Ihre Hilfe

    
ceadreak 01.08.2014, 15:24
quelle

2 Antworten

26

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:

zu erhalten (weil es kein Risiko gibt, auf eine undefinierte Eigenschaft von 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!

    
Oleg 01.08.2014, 17:25
quelle
12

Folgendes habe ich getan.

Kunde

%Vor%

Server

%Vor%     
Marlon Bernal 26.09.2016 20:12
quelle