web-dev-qa-db-fra.com

Socket.io requête incorrecte avec la réponse {"code": 0, "message": "Transport inconnu"}?

J'essaie de lancer socket.io et j'en reçois beaucoup:

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

Voici la réponse que je reçois:

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

Je ne trouve aucune raison. J'ai lu quelque part que cela pourrait être une mauvaise interprétation du client, mais c'est à peu près tout ce que j'ai pu obtenir.

12
JVE999

J'ai eu le même problème après la mise à niveau de 0.9.x à 1.x.x. Pour raccourcir la longue histoire, je mettrais les transports sur ['websocket', 'polling'], puis l'erreur ... 

lorsque vous configurez votre serveur pour utiliser des transpors spécifiques, vous devez définir la même configuration côté client sur ...

serveur

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

client

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

j'ai eu le même problème:

Obtenir le dernier fichier socket-client.js et utiliser ces fichiers sur le côté client a résolu ce problème pour moi. 

3
turtec

C'est ce qui m'est arrivé lorsque j'ai servi le script socket.io.js moi-même ... Je devais copier le code node_modules/socket.io/node_modules/socket.io-client/socket.io.js où je le servais.

2
Drew LeSueur

Ma solution consistait à mettre à niveau le fichier node.js à la dernière (0.12.0 au moment de cet article). À l'origine, node.js était installé en tant qu'élément d'un ensemble. Une fois que j'ai désinstallé le fichier node.js provenant de cet ensemble (le paquet Aptana 3, noeud.js était quelque peu en retard) et installé le dernier site Web du noeud.js, les choses ont finalement fonctionné.

J'expérimentais avec React.js. J'ai passé plusieurs heures à déboguer le phénomène, j'ai trouvé des erreurs de construction dans socket.io, en particulier à propos de socket.io-client, il a tenté d'invoquer Visual Studio MSBuild sans succès. Ce qui est triste, l’erreur est survenue avec node-gyp aussi. Apparemment, socket.io-client n'est pas nécessaire pour exécuter/servir mes exemples, et semble que ces erreurs malheureuses (qui m'ont attiré dans une forêt sans fin) peuvent être ignorées.

(J'ai aussi remarqué un module lors de l'installation de webpack-dev-server, qui est uniquement Darwin (Mac OS X). C'est heureusement une dépendance facultative. C'est effrayant cependant: je sais qu'Apple est très branché, mais la majorité du monde est non Mac.)

0
Csaba Toth