2

在我的 webapp 客户端脚本中,我使用的是 OrientDB Javascript API (orientdb-api.js)。当脚本初始化时,我运行以下代码:

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

这很好用,我可以做所有各种查询等,只要我在它们之间等待的时间不超过 15 秒。如果这样做,我会返回“错误 401(未经授权)”。

我知道这是套接字连接超时的事实。时间范围与配置中的 15000 毫秒超时设置相匹配。另外,作为测试,我构建了一个小按钮,它调用上面的 orientdb.open 方法并重新打开连接。按下该按钮后,我可以再次访问数据库。

目前,当我从 Web UI 触发操作时,直接在我的脚本中调用查询和命令。我只是懒惰吗,实际上我是否应该将每个查询包装在一个函数中,该函数首先测试连接并在它关闭时重新初始化,还是我遗漏了什么?如果是前者,那么优雅的编码方式是什么?如果是后者,我错过了什么?

为了解决这个问题,我运行了一个 setInterval 函数,它每 14 秒打开一个新套接字。这肯定会让我通过测试,但我意识到这是一个黑客行为。

4

1 回答 1

0

当您启动 OrientDB 服务器时,它会创建两个套接字:(2424二进制)和2480(HTTP)。

因为OrientJS 使用二进制协议,所以需要连接端口2424

尝试:

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

并且插座应该保持打开(更长)。

于 2019-10-17T12:34:09.223 回答