如何正确设置基于服务器的深层RPC提供程序?

时间:2016-11-15 16:07:01

标签: rpc deepstream.io

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

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服务器,并且连接了一个浏览器客户端,所以配置是正确的。请帮忙!

1 个答案:

答案 0 :(得分:3)

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

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

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

const client = deepstream('localhost:6021')

我们正在努力推出即将推出的2.0版本,它将完全删除tcp,并且只需要一个端口就可以在部署和性能方面更轻松。