Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带Javascript API的面向连接超时的数据库_Javascript_Orientdb_Orientjs - Fatal编程技术网

带Javascript API的面向连接超时的数据库

带Javascript API的面向连接超时的数据库,javascript,orientdb,orientjs,Javascript,Orientdb,Orientjs,在我的webapp客户端脚本中,我使用的是OrientDB Javascript API(OrientDB API.js)。当脚本初始化时,我运行以下代码: var orientdb = new ODatabase("http://localhost:2480/testapp"); var orientdbinfo = orientdb.open('root', 'admin'); 这很好,我可以做各种各样的查询等,只要它们之间的等待时间不超过15秒。如果我这样做,我将返回“错误401(未经授

在我的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秒打开一个新的套接字。这肯定会让我通过测试,但我意识到这是一个黑客行为。

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

由于
OrientJS
,您需要连接到端口
2424

尝试:

插座应保持打开状态(更长时间)

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