连接到Foxx应用程序作为TCP桥?

时间:2016-02-18 11:48:05

标签: arangodb foxx

我目前正在将我的Foxx应用程序设置为GraphQL API端点,我需要从浏览器和Node后端连接到它。有一个arango.client npm包,我想为我的后端安装,但它似乎只支持HTTP。创建一个TCP连接桥(在Node中)并以更低的延迟和更少的开销与之通信会不会更好?我知道ArangoDB支持TCP,但为什么它没有在arango.client中实现?

1 个答案:

答案 0 :(得分:1)

目前ArangoDB仅将HTTP实现为传输端点。

不可挽回的来源可能是指定服务器连接的 arangosh 命令行参数如下所示:

--server.endpoint tcp://127.0.0.1:8529

但那里说的协议是HTTP。

绕过TCP堆栈的一步可能是use unix domain sockets用于HTTP通信。您可以使用Raw routes与Foxx服务进行通信:

var db = require('arangojs')();
var myFoxxService = db.route('my-foxx-service');
myFoxxService.post('users', {
    username: 'admin',
    password: 'hunter2'
})
.then(response => {
    // response.body is the result of
    // POST /_db/_system/my-foxx-service/users
    // with JSON request body '{"username": "admin", "password": "hunter2"}'
});

ArangoDB 3.0将带来velocypack以及稍后的原始tcp协议1到副业HTTP。 Foxx也计划为此提供支持。

虽然arangojs目前是纯粹的js实现,但我们计划在未来使用类似的API提供本机后端。因此,如果你想从中受益,你现在应该选择ArangoJS。