0

外部サーバー (SuperFeedr) がサーバー (実行中の Node) とサーバー プロセスにリクエストを送信し、そのデータを NowJS を使用してリアルタイムでクライアントに直接送信するシステムを実装しようとしています。

問題は、関数が宣言された後に発生する必要がある listen() 関数が呼び出された後に初期化する必要があるため、サーバー関数の everyonce 名前空間にアクセスできないことです。だから基本的に:

ニーズ:

NowJS->リッスン->サーバー関数->everyone変数->NowJS

依存ループがあるようで、解決方法がわかりません。

4

1 に答える 1

1

それらすべてを独立して開始します。それらのいずれかが起動したら、それへの参照を共有の親スコープに入れます。たとえば、サーバーが通知を受信したときに、nowjs がまだ準備できていない場合はドロップします。簡単な例:

var a, b;
initializeA(function(a_) {
  a = a_
  a.on('request', function(request, response) {
    if (!b) {
      // B isn't ready yet, drop the request
      return response.end()
    }
    // ...
  })
})
initializeB(function(b_) {
  b = b_
  b.on('request', function(request, response) {
    if (!a) {
      // A isn't ready yet, drop the request
      return response.end()
    }
    // ...
  })
})
于 2012-01-14T13:22:19.010 に答える