2011-07-04 13 views
3

最新のsocket.ioモジュールで動作するようにnode.jsアプリケーションをアップグレードしました。 WebSocketハンドシェイク中にエラーが発生しました:「接続」ヘッダーの値が「アップグレード」されていませんSocket.ioでWebkitでWebsocketハンドシェイクに失敗しました。07

+1

Chrome/Safariのどのバージョン。また、#socket.ioで文句を言ってみてください。 – Raynos

+0

Google Chrome 12.0.742.112/Safari 5.0.5(6533.21.1) – Tim

+0

dotcloudのnode 0.4.5とsocket.io 0.7.6を使ってこの問題も発生しています。 –

答えて

3

NginxはHTTP 1.1と互換性がありません。 WebSocketsに必要です。あなたはそれにパッチを当てる必要があります(私があなたに手伝ってくれなかった、あまりにも多くの問題)か、node.jsだけをスタックすることができます。

私はnode-http-proxyを使用します。

参照:Advantages of a reverse proxy in front of Node.JS

+2

Nginxの開発版はHTTP 1.1をサポートしています。それは別の選択肢です。 :) – mikong

1

うん、それは完全にnginxのだ - 私はすべてが正常に動作していた、いくつかの非必須のものを変更し、それは動作しません。これを読んだ後で、私はURLにポートを入力するのをやめて、nginxのプロキシ処理に陥っていることに気づいただけです。ポートを追加しました。すぐに機能しました。

0

Nginxのバージョンを確認してください。 v1.4はうまく動作していましたが、v1.2では問題がありました(アップグレードする必要がありました)。

+0

FYI、Ubuntuで1.4にアップグレードする場合、これは必要なリソースです:http://www.slashgeek.net/2013/05/08/how-to-get-the-latest-nginx-on-ubuntu -12-04-2-lts-accurate-pangolin / –

関連する問題