gpt4 book ai didi

Node.js 执行在重启后卡住

转载 作者:太空宇宙 更新时间:2023-11-03 23:57:02 26 4
gpt4 key购买 nike

配置:

我正在构建一个 FPV 机器人,可以通过 Wi-Fi 本地网络浏览器进行控制。

我获得了 MVP,并开始运行。我在网络浏览器上获得了 640x480@20FPS、延迟为 240 毫秒的视频流,并且在控件上获得了 7 毫秒的延迟。

我正在树莓派 3B+ 上运行 NODE.JS 网络服务器。操作系统是 Raspbian Stretch。我使用 Socket.IO 提供低延迟双向控制,并使用 Websockets 传输流数据包。

问题:

关闭 Raspberry 电源后,NODE.JS 有时会在执行时卡住。我没有收到任何错误,也没有关于 NODE 为什么卡住的反馈。它需要 CTRL-C 才能关闭。

pi@MazeRunner:~ $ node 2019-06-09-ffmpeg/node.js


如果我将 NODE.JS 作为单独的进程发布,我可以继续使用 RPI,但 NODE 会在后台卡住。

pi@MazeRunner:~ $ node 2019-06-09-ffmpeg/node.js &  
[1] 778
pi@MazeRunner:~ $

详细信息:

  1. 有时,NODE.JS 会在等待大约 5 分钟后自行恢复,但没有任何反馈。一切才刚刚开始。
pi@MazeRunner:~ $ node 2019-06-09-ffmpeg/node.js
INFO: Server interface - enxb827eb23ca00 192.168.0.202
INFO: 192.168.0.202 listening to html requests on port 8080
INFO: /home/pi/2019-06-09-ffmpeg/index.html has been loaded into memory
INFO: /home/pi/2019-06-09-ffmpeg/style.css has been loaded into memory
INFO: /home/pi/2019-06-09-ffmpeg/jsmpeg.min.js has been loaded into memory
  • 有时我可以通过初始化 npm 将 NODE 恢复到工作状态,但有时此命令也会卡住。
  • pi@MazeRunner:~ $ npm --init yes

  • 我总是能够通过使用 apt-get remove 删除它并使用 apt-get install 重新安装它来恢复 Node ,这显然是不可行的

  • 我尝试查找 node.js 或 npm 日志,但没能找到它们

  • 在断电之前执行关闭似乎会使 Node.js 更有可能在启动时不会卡住。

  • pi@MazeRunner:~ $ sudo shutdown now

    问题:

    1. 有没有办法让 Node.js 在某处发出详细的调试日志来调试问题? STDOUT 和 STDERR 中都没有错误消息

    2. 我希望机器人能够即插即用,并在突然断电后仍能持续工作。我可以在浏览器页面上添加一个关闭按钮,但您很容易忘记使用它。通过控制台关闭根本违背了浏览器控制界面的目的。

    有没有办法让 raspbian Stretch 安全地突然关闭?

    感谢您提供的任何帮助!

    最佳答案

    您的代码可能会阻止事件循环。特别是在处理 websocket 时,这有点危险,因为循环可能只是等到它“勾选”并继续。在这种情况下,就没有办法处理日志或任何东西。 Node.js 在单线程上运行,如果您的代码阻塞事件循环,您的整个应用程序将卡住。

    您还可以查看此模块 https://github.com/naugtur/blocked-at

    引用文献
    https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/
    https://www.youtube.com/watch?v=8aGhZQkoFbQ
    https://medium.com/the-node-js-collection/what-you-should-know-to-really-understand-the-node-js-event-loop-and-its-metrics-c4907b19da4c

    关于Node.js 执行在重启后卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56608092/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com