【发布时间】:2014-03-16 09:31:55
【问题描述】:
我正在使用 node.js + socket.io + Winston (logger) 编写游戏服务器,但我的服务器每天都因为这个异常而死机:
Error: write EIO
at errnoException (net.js:901:11)
at Object.afterWrite (net.js:718:19)
我怀疑这可能是我使用 Winston 的方式。我有 server.js 和 room.js 类,我需要 Winston 使用以下语句:var winston = require('winston'); 和 server.js 我注册文件日志记录:
winston.add(winston.transports.File, { filename: 'server.log' });
winston.handleExceptions(new winston.transports.File({ filename: 'errors.log' }))
在room.js 中,我只需调用winston.info() 方法。
可能是因为有很多 room 实例或其他原因吗?
【问题讨论】:
-
如果在 Windows 上检查这个stackoverflow.com/questions/17035399/…,如果在 linux 上这是由于读/写错误,比如设备断开连接。
-
服务器是ubuntu linux。我能做些什么来防止这种行为?即使注册了“uncaughtException”事件 - 我的服务器在它发生时仍然死机
-
还没有想到这个。如果我这样做,我会在这里发帖。
-
我也遇到了同样的错误,而且我也在使用 socket.io。错误:在 Object.afterWrite (net.js:720:19) 处的 errnoException (net.js:904:11) 处写入 EIO
-
摆脱它并编写自己的 TCP 套接字。如果您不使用它与 html 页面通信,这是最好的选择。这就是我所做的,再也没有问题了..socket.io 也在泄漏内存,winston 也是如此。它们不适合大型项目和许多连接
标签: javascript node.js socket.io winston