Тайм-аут подключения OrientDB с API Javascript

В моем скрипте на стороне клиента веб-приложения я использую API-интерфейс OrientDB Javascript (orientdb-api.js). Когда скрипт инициализируется, я запускаю этот код:

var orientdb = new ODatabase("http://localhost:2480/testapp");
var orientdbinfo = orientdb.open('root', 'admin');

Это прекрасно работает, и я могу выполнять все различные запросы и т. Д., Пока я не жду между ними более 15 секунд. Если я это сделаю, я получу "ошибка 401 (неавторизовано)".

Я точно знаю, что это тайм-аут подключения к сокету. Таймфрейм соответствует настройке тайм-аута 15000 мс в конфигурации. Кроме того, в качестве теста я создал маленькую кнопку, которая вызывает метод orientdb.open выше и повторно открывает соединение. После того, как я нажму эту кнопку, я снова смогу получить доступ к БД.

В настоящее время запросы и команды вызываются непосредственно в моем скрипте, когда я запускаю действия из своего веб-интерфейса. Я просто ленивый и должен ли я обернуть каждый запрос в функцию, которая сначала проверяет соединение и повторно инициализирует его, если оно закрыто, или мне чего-то не хватает? Если первое, что это за элегантный способ кодирования? Если последнее, то что мне не хватает?

Чтобы обойти это, я запускаю функцию setInterval, которая открывает новый сокет каждые 14 секунд. Это наверняка поможет мне пройти тестирование, но я понимаю, что это взлом.

0 ответов

Когда вы запускаете сервер OrientDB, он создает два сокета: 2424 (двоичный) и 2480 (HTTP).

Потому как OrientJS использует двоичный протокол, вам необходимо подключиться к порту2424.

Пытаться:

var orientdb = new ODatabase("http://localhost:2424/testapp");
var orientdbinfo = orientdb.open('root', 'admin');

И розетка должна оставаться открытой (дольше).

Другие вопросы по тегам