node.js - unexpected - websocket handshake failure




流星WebSocketのハンドシェークエラー400とnginx (3)

私はインフラストラクチャに流星を展開することができました(Webfactions)。 アプリケーションは正常に動作しているようですが、アプリケーションの起動時にブラウザのコンソールに次のエラーが表示されます。

WebSocket connection to 'ws://.../websocket' failed: Error during WebSocket handshake: Unexpected response code: 400


AWS Elastic Load Balancerを使用しているときにこのエラーを検索しました。 環境変数の設定は機能しますが、HTTPSではなくELB上でTCPプロトコルを使用する方が良い解決策です。 FYI。


SEOに関して:失敗したwebsocket(コード400)はPhantomjsがまともなページロードを得るのを妨げます(そして終了しません)。

私の場合、Danの新しいNginx設定はWebSocketの失敗を防ぎ、Phantomjsにページを読み込ませることができます。


ブラウザのコンソールでこのエラークライアント側を受信して​​いる場合、無視しても問題ありません。つまり、ホスティングがWebソケットをサポートしておらず、流星が長いポーリングを使用する

herokuやWebSocketのない他のプラットフォームにデプロイされた流星アプリも同じエラーになります

update:meteor v0.6.4の時点で、環境変数DISABLE_WEBSOCKETSを設定して、この試みが失敗することがわかった場合にこの試みが行われないようにすることができます

https://github.com/meteor/meteor/blob/devel/History.md

If you set the DISABLE_WEBSOCKETS environment variable, browsers will not attempt to connect to your app using Websockets. Use this if you know your server environment does not properly proxy Websockets to reduce connection startup time.




meteor