Contact me: hankecnc@gmail.com

cnc 1.8.5登录动作持续约70秒 #105

推推 grbl 3年前 (2023-02-02) 252次浏览
关闭
thymjan 打开了这个问题 2016 年 12 月 5 日 · 16条评论
关闭

cnc 1.8.5登录动作持续约70秒#105

thymjan 打开了这个问题 2016 年 12 月 5 日 · 16条评论

注释

cnc 1.8.5登录动作持续约70秒 #105
蒂米扬 评论了 2016 年 12 月 5 日  

我在树莓派 1 型号 B+ 上运行 cnc 1.8.5。我知道这并不理想,但在最后一个版本中工作过。现在我尝试了登录功能。登录屏幕立即出现,但在点击登录按钮后,它会持续大约 70 秒,直到出现 GUI。这应该是正常行为吗?
cnc -vv显示错误:
2016-12-04T15:59:09.199Z - debug: [session-file-store] will retry, error on last attempt: Error: ENOENT: no such file or directory, open 'sessions/boCLjlqtL_-3fJFmMILYD___h9QwMJD0.json' at Object.logFn (/home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:3482:42)

cnc 1.8.5登录动作持续约70秒 #105
合作者

1~2秒内完成。您可以尝试打开开发者工具检查是否有任何控制台错误或网络连接问题?

cnc 1.8.5登录动作持续约70秒 #105

cnc 1.8.5登录动作持续约70秒 #105
作者

嗯…不知道我必须做什么。我必须在服务器或客户端上启动开发人员工具吗?我必须安装它们吗?我怎么称呼他们?抱歉,我是这方面的新手,你能帮帮我吗?

cnc 1.8.5登录动作持续约70秒 #105
合作者
奇顿 评论了 2016 年 12 月 5 日  

您可以使用以下键盘快捷键在 Chrome 浏览器中打开开发者工具:

访问开发者工具 在 Windows 上 在 Mac 上
打开开发者工具 F12、Ctrl + Shift + I 命令 + 选择 + 我

顺便说一句,我不确定 70 秒的延迟是否与此的 dns 查找有关,但异步调用不应阻止程序执行。你能像下面那样ping你的主机名吗?

$ ping `hostname`
PING cheton-mba.local (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: icmp_seq=0 ttl=64 time=0.097 ms
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.146 ms
cnc 1.8.5登录动作持续约70秒 #105
合作者

登录成功后第二次打开web界面,是否还遇到了长时间的延迟?

cnc 1.8.5登录动作持续约70秒 #105
作者
蒂米扬 评论了 2016 年 12 月 6 日  

ping cnc.local
PING cnc.local (192.168.1.13): 56 data bytes
64 bytes from 192.168.1.13: icmp_seq=0 ttl=64 time=37.091 ms
64 bytes from 192.168.1.13: icmp_seq=1 ttl=64 time=55.698 ms
64 bytes from 192.168.1.13: icmp_seq=2 ttl=64 time=16.540 ms

-> 这应该没问题,对吗?

在登录:
cnc 1.8.5登录动作持续约70秒 #105

已登录时调用 GUI(这和往常一样快):
cnc 1.8.5登录动作持续约70秒 #105

cnc 1.8.5登录动作持续约70秒 #105
合作者

嗯。如果您尝试从导航下拉菜单中退出,是否会再次出现长时间延迟?

cnc 1.8.5登录动作持续约70秒 #105

cnc 1.8.5登录动作持续约70秒 #105
作者

不,我可以通过“正常”行为做到这一点。

cnc 1.8.5登录动作持续约70秒 #105
合作者

不知道这将如何发生。您可以尝试清理浏览器缓存,删除服务器配置文件~/.cncrc,然后重新启动服务器以查看是哪个步骤导致了此问题。

cnc 1.8.5登录动作持续约70秒 #105
作者

这个错误怎么办?

2016-12-05T16:29:39.679Z - info: Started the server at http://127.0.1.1:8000     at /home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:7702:32
2016-12-05T16:29:44.297Z - debug: [cncengine] New connection from 192.168.1.3: id=rfSaJlRc7WR4tDmrAAAA, token.id=87e60200-fd65-43ac-9a5f-5464fdbceffb, token.name=pi     at Namespace.<anonymous> (/home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:8138:28)
2016-12-05T16:29:55.774Z - debug: [session-file-store] will retry, error on last attempt: Error: ENOENT: no such file or directory, open 'sessions/I-H3Jznw6s65OvdGesa6emseusoAl8DR.json'     at Object.logFn (/home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:3538:42)
2016-12-05T16:29:55.821Z - debug: [session-file-store] will retry, error on last attempt: Error: ENOENT: no such file or directory, open 'sessions/I-H3Jznw6s65OvdGesa6emseusoAl8DR.json'     at Object.logFn (/home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:3538:42)
2016-12-05T16:29:55.873Z - debug: [session-file-store] will retry, error on last attempt: Error: ENOENT: no such file or directory, open 'sessions/I-H3Jznw6s65OvdGesa6emseusoAl8DR.json'     at Object.logFn (/home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:3538:42)
2016-12-05T16:29:55.924Z - debug: [session-file-store] will retry, error on last attempt: Error: ENOENT: no such file or directory, open 'sessions/I-H3Jznw6s65OvdGesa6emseusoAl8DR.json'     at Object.logFn (/home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:3538:42)
2016-12-05T16:29:55.977Z - debug: [session-file-store] will retry, error on last attempt: Error: ENOENT: no such file or directory, open 'sessions/I-H3Jznw6s65OvdGesa6emseusoAl8DR.json'     at Object.logFn (/home/pi/.nvm/versions/node/v4.4.7/lib/node_modules/cncjs/dist/cnc/app/index.js:3538:42)
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /?lang=de 200 613.575 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/app.css?2ac2e49f43f0ef0444f3b3831e1f7803 200 168.720 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/app-2.css?78485cfa0e2dcd255fb7a415de688cd9 200 179.881 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/polyfill.5ee83d8f43ef736a911d.js 200 127.791 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/app.9c3e101dbd382a2bd503.bundle.js 200 146.037 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/app-1.css?78485cfa0e2dcd255fb7a415de688cd9 200 123.228 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/images/32x32/loading.gif 200 22.246 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/vendor.dc3c09a14f3d76b883f6.js 200 159.765 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU POST /api/signin 401 87.655 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/favicon.ico 200 26.509 ms
p93w3WekhDe083JycXTxQi-YwAeWFPuU GET /58d1d0c2/af7ae505a9eed503f8b8e6982036873e.woff2 200 12.508 ms
cnc 1.8.5登录动作持续约70秒 #105
合作者

会话文件存储错误就好了。它在服务器重新启动时显示错误消息,但打开的浏览器窗口仍保留以前的会话 ID,因此报告错误。

cnc 1.8.5登录动作持续约70秒 #105
作者

现在我已经更新到 1.8.7
相同的行为。我删除了 .cncrc 文件。
现在,如果我添加一个新用户,也会有这么长的延迟。我再次点击“添加新帐户”窗口中的“确定”按钮:大约 70 秒后窗口消失。

也许加密算法对于树莓派 1 模型 B+ 来说太重了?
top在我等待时显示节点的 CPU 使用率接近 100%。

登录时同样高 CPU 负载。

cnc 1.8.5登录动作持续约70秒 #105
合作者

可能是generateToken函数引起的
https://github.com/cheton/cnc/blob/v1.8.7/src/app/api/api.users.js#L18-L24

const generateToken = (payload, secret = settings.secret) => {
    const token = jwt.sign(payload, secret, {
        expiresIn: 60 * 60 * 24 // expires in 24 hours
    });

    return token;
};

我将再次查看jsonwebtoken并检查是否有一些轻量级加密算法可以用作 jwt.sign() 选项。
https://github.com/auth0/node-jsonwebtoken

cnc 1.8.5登录动作持续约70秒 #105
合作者

我没有树莓派 1,但我的树莓派 2 也延迟了大约 3~4 秒。抱歉,到目前为止我还没有找到更快的解决方案,但是,当前的实施将在 24 小时后重新验证过期的访问令牌。如何将过期时间延长到更长的时间(例如 30 天)作为解决方法,或者添加一个可配置的值?

cnc 1.8.5登录动作持续约70秒 #105

可配置值可能最适合希望在 24 小时后仍然过期的任何人。

cnc 1.8.5登录动作持续约70秒 #105
合作者
奇顿 评论了 2016 年 12 月 15 日  

--access-token-lifetimemaster 分支现在提供了一个新选项:
https ://github.com/cheton/cnc/blob/master/src/cnc.js#L40

--access-token-lifetime <lifetime>', 'access token lifetime in seconds or a time span string (default: 30d)

它将与 1.8.8 版本一起发布。

cnc 1.8.5登录动作持续约70秒 #105
合作者

你好@thymjan,

您可以安装最新版本 (v1.8.8),并将访问令牌生命周期作为命令行选项传递,或者将此配置永久保存到~/.cncrc文件中。

在https://github.com/cheton/cnc#usage查看用法