0

我正在尝试实现一个系统,其中外部服务器(SuperFeedr)向我的服务器(运行节点)和我的服务器进程发送请求,然后使用 NowJS 将该数据直接实时发送到客户端。

问题是,我无法访问服务器函数中的everyonce 命名空间,因为它必须在调用listen() 函数之后进行初始化,这必须在函数声明之后发生。所以基本上:

需求:

NowJS->监听->服务器函数->每个变量->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 回答