在我的webapp客户端脚本中,我正在使用OrientDB Javascript API(orientdb-api.js)。当脚本初始化时,我运行以下代码:
var orientdb = new ODatabase("http://localhost:2480/testapp");
var orientdbinfo = orientdb.open('root', 'admin');
这很好,我可以做各种各样的查询等,只要我不等待超过15秒。如果我这样做,我会收到“错误401(未经授权)”。
我知道这是套接字连接超时的事实。时间范围与配置中的15000ms超时设置相匹配。另外,作为测试,我构建了一个调用上面的orientdb.open方法的小按钮,并重新打开连接。点击该按钮后,我可以再次访问数据库。
当我从我的Web UI触发操作时,我的脚本中正在直接调用查询和命令。我只是懒惰而且我实际上应该将每个查询包装在一个首先测试连接的函数中,如果它被关闭则重新初始化,或者是否有我遗漏的东西?如果是前者,那么优雅的编码方式是什么呢?如果是后者,我错过了什么?
为了解决这个问题,我正在运行一个setInterval函数,该函数每14秒打开一个新的套接字。这肯定会让我通过我的测试,但我意识到这是一个黑客攻击。
答案 0 :(得分:0)
启动OrientDB服务器时,它将创建两个套接字:2424
(二进制)和2480
(HTTP)。
由于OrientJS
uses the binary protocol,您需要连接到端口2424
。
尝试:
var orientdb = new ODatabase("http://localhost:2424/testapp");
var orientdbinfo = orientdb.open('root', 'admin');
插座应该保持打开状态(更长)。