2015-12-15 27 views
8

私はそれが唯一のポーリングで働いては許可GoogleのCompute Engineの(GCE)でWebSocketを

Socket.IO(Node.jsの)と私のソケットサーバーを実行するためにCompute Engineの(GCE)を使用しています。ウェブクライアントを使用しようとすると、次のエラーコードが表示されます。

WebSocket connection to 'ws://myapp-socket.appspot.com/socket.io/?EIO=3&transport=websocket&sid=Tt4uNFR2fU82zsCIAADo' failed: Unexpected response code: 400 

私は間違っていますか? GCEの設定に問題はありますか?

+0

私は同様の問題に直面しています。これを解決できましたか? –

+0

@NewtonJoshua、詳細はこちらあなたはNginxを使用していますか? –

+0

@ TarunLalwani:いいえ、私はNginxを使用していません。 socket.ioを使用するノードサーバーとAngularクライアントがあります。 –

答えて

5

WebSocketを使用する場合は、スクリプト内でmyapp-socket.appspot.comドメインを使用することはできません。その代わりに、GCEインスタンスの外部IPを使用して直接接続し、使用している可能性のあるファイアウォールポートを開く必要があります。

私はappspot.comドメインに行くトラフィックもフロントエンドWebサーバーを経由しており、socket.ioはサーバーに直接接続する必要があると考えています。

+1

外部IPアドレスを使用しても問題が解決しない場合 –

+1

ソケットの既存の[issue#1942](https://github.com/socketio/socket.io/issues/1942)のすべてのソリューションを試してください。 io – SACn

1

Google Compute Engineの仮想マシンには、httpの場合はポート80、httpsの場合はポート443があります。これらのポートをウェブソケットに使用することで問題は解決しました。

関連する問題