2

我正在使用 deepstream 构建 SOA,并且我想使用 deepstream 客户端服务器来执行用户不应该知道的基于 API-KEY 的查找。我如何实际设置 RPC 客户端提供程序?我查看了 deepstream 文档和 google,但没有关于如何执行此操作的完整代码示例。我创建了一个如下所示的文件并使用 node.js 运行它。我得到的输出在它下面:

var deepstream = require('deepstream.io-client-js')
const client = deepstream('localhost:6020').login()
console.log('Starting up')
client.on('error', (error,event,topic) => {
  console.log(error, event, topic);
})

client.on('connectionStateChanged', connectionState => {
  console.log(connectionState);
})

client.login({username: 'USER', password: 'PASSWORD'}, (success, data) => {
  if (success) {
    client.rpc.provide('the-rpc', function( data, response ){
      response.send(data);
    });
  } else {
    console.log(data);
  }
})

--

Starting up
AWAITING_CONNECTION

如您所见,它运行代码,但实际上并没有连接到 deepstream 服务器。我已经运行了 deepstream 服务器,以及连接到它的浏览器客户端,所以配置是正确的。请帮忙!

4

1 回答 1

4

我认为您的问题是基于您尝试通过 webport 连接节点的事实。尝试使用端口 6021 代替 tcp(由节点客户端使用)。

const client = deepstream('localhost:6021').login()

您也应该只调用.login()一次,因此该行将是:

const client = deepstream('localhost:6021')

我们正在开发一个即将发布的 2.0 版本,它将完全删除 tcp,并且只需要一个端口即可使部署和性能方面的生活更轻松。

于 2016-11-16T11:58:23.963 回答