web-dev-qa-db-ja.com

Socket.ioの不正なリクエストと応答{"code":0、 "message": "Transport unknown"}?

私はsocket.ioを実行しようとしています、そして私はこれらの束を得ています:

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

これは私が得ている応答です:

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

理由がわかりません。クライアントを誤解しているかもしれないとどこかで読んだことがありますが、それは私ができる限りのことです。

13
JVE999

同じ問題がありましたが、0.9.xからアップグレードした後、サーバー構成が0.9で有効だった_['websocket', 'jsonp-polling']_に設定されていましたが、クライアントとサーバーのデフォルト構成は_['polling', 'websocket']_になりました。サーバー構成を削除すると、起動して実行されます。

設定はengine.io( https://github.com/automattic/engine.io )でドキュメント化されています。これは、1.0で導入された新しいトランスポートレイヤー、特に次の行です。
transports ( String): transports to allow connections to (['polling', 'websocket'])

16
johnl

0.9.xから1.x.xにアップグレードした後、同じ問題が発生しました。長い話を短くすると、トランスポートを['websocket'、 'polling']に設定してから、エラーを...

特定のトランスポーターを使用するようにサーバーを構成する場合、クライアント側で同じ構成を設定する必要があります...

サーバ

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

クライアント

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

私は同じ問題がありました:

最新のsocket-client.jsを取得し、クライアントサイドでこれらのファイルを使用すると、この問題は解決しました。

3
turtec

これは、socket.io.jsスクリプトを自分で提供したときに起こりました。私はコピーに行かなければなりませんでしたnode_modules/socket.io/node_modules/socket.io-client/socket.io.js提供していた場所まで。

2
Drew LeSueur

私の解決策は、node.jsを最新(この投稿の時点では0.12.0)にアップグレードすることでした。もともとnode.jsはバンドルの一部としてインストールされていました。そのバンドルからのnode.js(Aptana 3バンドル、node.jsが少し遅れていた)をアンインストールし、node.jsのWebサイトから最新のものをインストールすると、ようやく動作が開始されました。

React.jsを試してみました。現象のデバッグに数時間を費やしましたが、socket.ioでビルドエラー、具体的にはsocket.io-clientを見つけましたが、Visual Studio MSBuildを正常に呼び出そうとしませんでした。悲しいことに、このエラーはnode-gypでも発生しました。どうやらsocket.io-clientは私の例を実行/提供する必要はなく、これらの不幸なエラー(私を無限の森に誘い込んだ)は無視できるようです。

(webpack-dev-serverをインストールしているときにもモジュールに気付きました。これはDarwinのみ(別名Mac OS X)です。幸い、これはオプションの依存関係です。恐ろしいことですが、Appleは非常に流行に敏感ですが、世界の大部分はMac以外です。)

0
Csaba Toth