如何用Socket.iodebuggingNode.js

我正在使用Google Chrome Developer Tools插件来debugging我的Node.js服务器。 这个服务器使用Socket.io来连接我的web客户端和服务器之间的websocket连接。 当我在我的服务器中设置一个断点并开始遍历代码时,问题就出现了。 客户很快就决定服务器不在了,因为不再有心跳或任何通信,所以它断开连接。 同时,当我正在逐步完成时,我的代码试图对套接字执行一些操作,然后由于套接字已closures而死亡。 试图像这样debugging有点棘手。

所以问题是,如何debugging一个像这样的服务器打开websocket连接,而不是closures连接? 我不知道有一个好的解决办法,但我想我会把它放在那里,看看有没有人有天才的想法。

在做了更多的研究后,我发现了一些看起来很有希望的项目,即“节点检查员”和“节点代码”。 然而,node-inspector不能和最新版本的node一起工作,node-codein有很多bug。 而且,也没有真正维护,他们都只与Chrome一起工作。 所以,我写了自己的解决scheme,名为节点猴子 ,这是非常简单的使用,它适用于Firefox或Chrome。 它只是捕获在Node应用程序中logging到控制台的东西,并将该输出redirect到浏览器控制台。 您可以运行以下命令来安装它:

npm install node-monkey 

即使它听起来像是一个讨厌的石头,但在这种情况下(实际上debugging一个客户端 – >服务器环境),我在服务器端定期使用标准输出,就像console.log()console.debug

如果你需要debugging你的客户端脚本,你可以做同样的事情,如果你不想丢失服务器连接。 实际上,除了重新configurationsocket.IO的心跳超时以外,其他方面我都没有看到。