web-dev-qa-db-de.com

Socket.io fehlerhafte Anforderung mit Antwort {"code": 0, "message": "Transport unknown"}?

Ich versuche, socket.io auszuführen und bekomme eine Menge davon:

http://domain.com:8080/socket.io/?EIO=2&transport=polling&t=1401421022966-0 400 (Bad Request) 

Dies ist die Antwort, die ich bekomme:

{"code":0,"message":"Transport unknown"}

Ich kann keinen Grund finden. Ich habe irgendwo gelesen, dass es den Client möglicherweise falsch interpretiert, aber das ist ungefähr so ​​weit, wie ich konnte.

12
JVE999

Ich hatte das gleiche Problem, nach dem Upgrade von 0.9.x stellte sich heraus, dass meine Serverkonfiguration auf ['websocket', 'jsonp-polling'] Gesetzt war, was in 0.9 gültig war, aber die Standardkonfiguration für den Client und den Server ist jetzt ['polling', 'websocket']. Das Entfernen meiner Serverkonfiguration hat mich zum Laufen gebracht.

Die Konfiguration ist jetzt in engine.io ( https://github.com/automattic/engine.io ) dokumentiert, der neuen Transportschicht, die in 1.0 eingeführt wurde - insbesondere in dieser Zeile:
transports ( String): transports to allow connections to (['polling', 'websocket'])

15
johnl

Ich hatte das gleiche Problem nach einem Upgrade von 0.9.x auf 1.x.x. Um die lange Geschichte zu verkürzen, würde ich Transporte auf ['websocket', 'polling'] setzen und dann den Fehler ... 

wenn Sie Ihren Server für die Verwendung von specefic-Transpondern konfigurieren, sollten Sie dieselbe Konfiguration auf der Clientseite auf ...

server

    var io = require('socket.io')(server, {'transports': ['websocket', 'polling']});

klient

    var io = io( serverUri, {'transports': ['websocket', 'polling']});
9
smbeiragh

ich hatte das gleiche Problem:

Das neueste socket-client.js zu bekommen und diese Datei auf der Clientseite zu verwenden, hat dieses Problem für mich gelöst. 

3
turtec

Dies ist mir passiert, als ich das socket.io.js-Skript selbst bedient habe . Ich musste node_modules/socket.io/node_modules/socket.io-client/socket.io.js dorthin kopieren, wo ich es servierte.

2
Drew LeSueur

Meine Lösung bestand darin, node.js auf den neuesten Stand zu bringen (0.12.0 zum Zeitpunkt dieses Beitrags). Ursprünglich wurde node.js als Teil eines Bundles installiert. Nachdem ich das node.js von diesem Bundle deinstalliert hatte (Aptana 3-Bundle, node.js lag etwas hinterher) und das neueste von der Website von node.js installierte, ging es endlich los.

Ich habe mit React.js experimentiert. Ich verbrachte mehrere Stunden damit, das Phänomen zu debuggen. Ich habe Build-Fehler in socket.io gefunden, insbesondere über socket.io-client. Es wurde versucht, Visual Studio MSBuild nicht erfolgreich aufzurufen. Leider ist der Fehler auch bei node-gyp aufgetreten. Offenbar wird socket.io-client nicht benötigt, um meine Beispiele auszuführen/auszuführen, und es scheint, als könnten diese unglücklichen Fehler (die mich in einen endlosen Wald gelockt haben) ignoriert werden.

(Bei der Installation des Webpack-dev-Servers ist mir auch ein Modul aufgefallen, das nur Darwin ist (auch bekannt als Mac OS X). Glücklicherweise ist dies eine optionale Abhängigkeit. Es ist jedoch beängstigend: Ich weiß, dass Apple sehr hipster ist, die Mehrheit der Welt jedoch nicht Mac.)

0
Csaba Toth