Meteor -> Modulus コンテキストで websocket と xhr について頭を悩ませようとしています。接続できないときに Websocket が xhr にフォールバックするために、応答時間が長くなることがあることに気付きました...理由を診断しようとしています。
本番アプリは Modulus でホストされています。SSL が有効になっています。
これまでに行ったこと/確認したこと
- すべてのものをアップグレードする: アプリは 1.0.2.1 (最新) で実行されていますが、最初は ~0.65 日の間に作成されました。最初の仕事として、standard-app-packages を meteor-platform パッケージにアップグレードし、サーバーを再起動しました。変化なし。
- Modulus: チェック...Modulus では、安全な WebSocket を有効にするための明示的なコマンドは必要ありません
- Meteor: チェック... Meteor 0.6.3.1の時点で、Websocketsはデフォルトで有効になっています。
- 出版物のサイズ: 出版物をもう少し倹約することもできると思いますが、これらは合計で約 1.4kb のようです。
- ブラウザのセキュリティ ポリシー: これで十分であることはほぼ確実です (以下を参照)。
ここでは比較的初心者なので、次に何を確認するかについての考えやアドバイスは大歓迎です。
BrowserPolicy.content.disallowConnect();
//
//Allow Meteor DDP Connections
//
var rootUrl = __meteor_runtime_config__.ROOT_URL;
console.log('ROOT_URL: ' + rootUrl);
//Allow DDP connections for local development
if (rootUrl == 'http://localhost:3000/') {
BrowserPolicy.content.allowConnectOrigin(rootUrl);
BrowserPolicy.content.allowConnectOrigin(rootUrl.replace(/http(s?)/, 'ws$1'));
}
//Allow DDP connections for staging server currently using Meteor's free hosting
if (rootUrl == 'http://staging.example.com') {
BrowserPolicy.content.allowConnectOrigin('https://*.meteor.com');
BrowserPolicy.content.allowConnectOrigin('wss://*.meteor.com');
}
//Allow DDP connections for Modulus
if (rootUrl == 'https://myappname-12345.onmodulus.net') {
BrowserPolicy.content.allowConnectOrigin('https://example.com');
BrowserPolicy.content.allowConnectOrigin('wss://example.com');
}
更新:
安全のために、Modulus ROOT_URL をカスタム ドメインに変更します。とhttps://myappname-12345.onmodulus.net
なりhttps://example.com
ます。