2016-02-18 2 views
1

В настоящее время я настраиваю свое приложение Foxx как конечную точку API GraphQL, и мне нужно будет подключиться к нему из браузера и бэкэнда узла. Существует пакет arango.client npm, который я собираюсь установить для моего бэкэнд, но похоже, что он поддерживает только HTTP. Разве не лучше было бы создать мост TCP-соединения один раз (в узле) и обмениваться с ним более низкой задержкой и меньшими накладными расходами? Я знаю, что ArangoDB поддерживает TCP, но почему он не реализован в arango.client?Подключение к Foxx app в качестве TCP-моста?

ответ

1

В настоящее время ArangoDB реализует только HTTP как конечную точку транспорта.

Источник irretation может быть, указав 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 и позже Raw TCP Protocoll оттеснить HTTP. Планируется также поддержка Foxx.

Хотя arangojs в настоящее время является чистой реализацией js, в будущем мы планируем предложить собственный бэкэнд под похожим API. Поэтому, если вы хотите воспользоваться этим, вы должны пойти с ArangoJS сейчас.

+0

Спасибо за ответ. Замечательно, что вы планируете реализовать эту функцию, это будет очень полезно. Для меня не очень важно иметь эту функцию прямо сейчас, поэтому я думаю, что я просто подожду, пока она не будет реализована в Foxx. Thanx! – artnikpro

Смежные вопросы