通过localhost连接到Cayley

时间:2016-04-16 04:34:20

标签: node.js gremlin cayley

我已经关注了“入门”'在Cayley的文档中指导并在我的远程服务器上安装了Cayley:

  

使用入门:https://github.com/google/cayley

服务器操作系统:CentOS 7.2.1511

我已将cayley添加到$ PATH:

echo $PATH

  

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/csse/cayley/src/github.com/google/cayley

以下是我在/etc/cayley.cfg

的配置文件
{
  "database": "leveldb",
  "db_options": {
    "cache_size_mb": 2,
    "write_buffer_mb": 20
  },
  "db_path": "~/cayley/src/github.com/google/cayley/data/testdata.nq",
  "listen_host": "127.0.0.1",
  "listen_port": "64210",
  "read_only": false,
  "replication_options": {
    "ignore_missing": false,
    "ignore_duplicate": false
  },
  "timeout": 30
}

我只是通过以下方式为cayley提供服务:

cayley http

和终端输出:

  

Cayley现在正在收听127.0.0.1:64210

在我的主机(Mac OSX 10.10.5 Yosemite)上,我使用npm安装cayley包并编写测试:

testconnection.js

var cayley = require('cayley');

var client = cayley("137.112.104.107");

var g = client.graph;

g.V().All(function(err, result) {
    if(err) {
        console.log('error');
   } else {
        console.log('result');
   }
});

但是,当我运行它时失败:node testconnection.js

  

错误:错误:无效的URI" 137.112.104.107/api/v1/query/gremlin"

我想连接到Cayley并从我的测试中修改数据库。我找到了一个充满凯利信息的伟大的powerpoint:

https://docs.google.com/presentation/d/1tCbsYym1kXWWDcnRU9ymj6xP0Nvgq-Qhy9WDmqWcM-o/edit#slide=id.g3776708f1_0319

以及相关的Cayley文档:
  - Overview Doc
  - Configuration Doc
  - HTTP API Doc

有关stackoverflow的帖子:
  - Cayley db user and password protection over HTTP connections

但我正在努力想出一种方法将Cayley(在我的远程机器上)与我的本地机器连接起来。如果可能的话,我想和npm联系,但我愿意接受其他选择。我哪里错了?

编辑#1

我已经附加了" http://"到我的IP,现在它读取http://137.112.104.107。那时,我通过执行

解决了另一个问题

cayley init --config=/etc/cayley.cfg 如作者here

所述

我还从配置文件中删除了listen_postlisten_port(首先是每个,然后是两个),但仍然有相同的socket hang up错误。这是测试脚本中client的打印输出:

Client {
    host: 'http://137.112.104.107',
    request:
        { [Function]
        get: [Function],
        head: [Function],
        post: [Function],
        put: [Function],
        patch: [Function],
        del: [Function],
        cookie: [Function],
        jar: [Function],
        defaults: [Function] },
    graph: Gremlin { client: [Circular], query: [Function] },
    g: Gremlin { client: [Circular], query: [Function] },
    write: [Function: bound ],
    delete: [Function: bound ],
    writeFile: [Function: bound ]
}

1 个答案:

答案 0 :(得分:0)

您的Cayley服务器正在侦听127.0.0.1 / localhost,因此无法从其他计算机访问。为了能够从网络上的虚拟机或其他计算机访问它,它需要绑定到可以访问的接口。

如果您配置host:0.0.0.0并检查您的网络IP(我假设:137.112.104.107)并连接它,它应该可以工作,或者您需要打开它或转发防火墙上的端口(取决于您的网络)。