Тайм-аут подключения 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');
И розетка должна оставаться открытой (дольше).