You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

node-opcua中crawler.read超时(60000ms),如何修改超时时间?

解决node-opcua NodeCrawler.read超时问题

你遇到的TypeError本质是node-opcua-client-crawler内部的read操作超时(默认60秒),你设置的客户端requestedSessionTimeout是会话级别的超时,不影响crawler单次read请求的超时时间,以下是可行的解决方法:

  • 直接给NodeCrawler配置read超时参数
    NodeCrawler的构造函数支持传入第二个配置参数,其中readOptions可以指定单次read请求的超时时间,修改你的crawler初始化代码:

    const crawler = new NodeCrawler(session, {
      readOptions: {
        requestedTimeout: 120000 // 调整为需要的超时时间,比如120秒
      }
    });
    
  • 全局覆盖session.read的默认超时
    如果上述方法不生效,可以通过包装session的read方法,强制设置超时参数:

    const session = await client.createSession(userInfo);
    // 包装原read方法,添加默认超时
    const originalRead = session.read;
    session.read = function(nodesToRead, options = {}) {
      // 合并自定义超时和传入的选项
      const mergedOptions = { requestedTimeout: 120000, ...options };
      return originalRead.call(this, nodesToRead, mergedOptions);
    };
    // 再初始化crawler
    const crawler = new NodeCrawler(session);
    
  • 辅助优化建议

    • 检查PLC的负载情况,若PLC同时处理大量请求,可能导致响应延迟
    • 确认网络连接稳定性,避免因网络丢包或延迟触发超时
    • 若PLC节点数量极大,可考虑分批次爬取(部分版本的NodeCrawler支持配置批量大小)

内容的提问来源于stack exchange,提问作者Jantoma21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:30:49