在控制台上按下按键之前,Node.js 没有响应

标签 node.js console socket.io

我有一个在 Windows Server 2008 上运行的 Node.js 应用程序。我在这里遇到了一个奇怪的问题。

我的应用执行多个异步任务。将数据发送到 socket.io、MySQL、HTTP 连接、TCP 连接等。

我的 Node 应用程序变得无响应,尤其是在 socket.io 端,并且只有在控制台上按下任何键后才会再次响应。这是一个已知的问题?有没有绕过这种行为?

注意:我大量使用 console.log 来跟踪当前操作和过程中的错误。

最佳答案

我做了一些背景调查并得出以下结论。

Windows Server 2008 上的 Powershell 控制台在单击时进入“暂停”模式。如果您单击其他地方,它会再次释放。 http://www.vistax64.com/powershell/112032-script-pauses-when-you-click-powershell-text-window.html

如果您注意到,console.log 是异步的。但是 console.warnconsole.error 是阻塞的。这些不是异步的。

控制台暂停可能会阻止部分/大部分 Node.js 操作。特别是因为默认调试级别的 Socket.io 将报告的不仅仅是 console.log

关于在控制台上按下按键之前,Node.js 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16557850/

相关文章:

javascript - 从 NodeJs 串口读取数据

javascript - 如何使用模块mysql在nodejs上列出mysql中的列

javascript - 将 async/await 与 forEach 循环一起使用

node.js - 使用 Mongoose 在嵌入式数据模型中添加对象

javascript - 可以在控制台中隐藏资源加载的5xx/4xx错误吗?

javascript - 在 80 以外的端口中运行 socket.io 时遇到问题

c# - 从 Winforms 控制 cmd.exe

macos - mac 下的 Vim 表现不符合预期

mysql - Socket.io 无响应,Node.js

node.js - 使用 node.js、socket.io 和 redis 的一对一聊天应用程序