2

Meteor -> Modulus コンテキストで websocket と xhr について頭を悩ませようとしています。接続できないときに Websocket が xhr にフォールバックするために、応答時間が長くなることがあることに気付きました...理由を診断しようとしています。

本番アプリは Modulus でホストされています。SSL が有効になっています。

これまでに行ったこと/確認したこと

  1. すべてのものをアップグレードする: アプリは 1.0.2.1 (最新) で実行されていますが、最初は ~0.65 日の間に作成されました。最初の仕事として、standard-app-packages を meteor-platform パッケージにアップグレードし、サーバーを再起動しました。変化なし。
  2. Modulus: チェック...Modulus では、安全な WebSocket を有効にするための明示的なコマンドは必要ありません
  3. Meteor: チェック... Meteor 0.6.3.1の時点で、Websocketsはデフォルトで有効になっています。
  4. 出版物のサイズ: 出版物をもう少し倹約することもできると思いますが、これらは合計で約 1.4kb のようです。
  5. ブラウザのセキュリティ ポリシー: これで十分であることはほぼ確実です (以下を参照)。

ここでは比較的初心者なので、次に何を確認するかについての考えやアドバイスは大歓迎です。

PS -ここここで同様の未回答の質問

  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ます。

4

1 に答える 1

8

あなたが何をしようとも、少なくともユーザーのごく一部が XHR にフォールバックする可能性があります。WebSocket は、特にモバイルではまだ完全にはサポートされていません。SSL を使用すると、より幅広いサポートが得られますが、まだどこにでもあるわけではありません。

WebSocket が機能しているように見える限り、他にできることはあまりありません。XHR は、設計上、応答時間が非常に長くなります。XHR は、サーバーへの長い (~30 秒) 接続を開くことで機能します。サーバーが何も言うことがない場合、接続を閉じて再度実行します。これにより、サーバーはその 30 秒のウィンドウ内でいつでもすぐに応答できます。これらの XHR ポーリングは長い応答時間として表示されますが、完全に正常です。

免責事項: 私は Modulus の従業員です

于 2015-01-12T23:57:43.223 に答える