Node.js无响应,直到按下控制台

时间:2013-05-15 05:56:32

标签: node.js console socket.io

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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操作的部分/大部分内容。 ESP。因为Socket.io在默认调试级别将报告的不只是console.log

答案 1 :(得分:0)

其他人建议的解决方案对我不起作用,但使用 Cmder 启动脚本解决了它。显然是控制台应用程序问题,而不是 node.js 问题。