我正在使用Socket.io运行Express.js应用程序用于聊天Web应用程序,并且在24小时内大约5次随机收到以下错误。节点进程将被永久封装,并立即重新启动。

问题是重新启动Express将我的用户踢出他们的房间,没人希望这样做。

Web服务器由HAProxy代理。仅使用websockets和flashsockets传输就没有套接字稳定性问题。我无法有意复制此内容。

这是Node的错误v0.10.11:

events.js:72

throw er; // Unhandled 'error' event

^

Error: read ECONNRESET //alternatively it s a 'write'

at errnoException (net.js:900:11)

at TCP.onread (net.js:555:19)

error: Forever detected script exited with code: 8

error: Forever restarting script for 2 time

编辑(2013-07-22)

添加了socket.io客户端错误处理程序和未捕获的异常处理程序。似乎此错误捕获了:

process.on('uncaughtException', function (err) {

console.error(err.stack);

console.log("Node NOT Exiting...");

});

So I suspect it's not a Socket.io issue but an HTTP request to another server

that I do or a MySQL/Redis connection. The problem is that the error stack

doesn't help me identify my code issue. Here is the log output:

Error: read ECONNRESET

at errnoException (net.js:900:11)

at TCP.onread (net.js:555:19)

How do I know what causes this? How do I get more out of the error?

Ok, not very verbose but here's the stacktrace with Longjohn:

Exception caught: Error ECONNRESET

{ [Error: read ECONNRESET]

code: 'ECONNRESET',

errno: 'ECONNRESET',

syscall: 'read',

__cached_trace__:

[ { receiver: [Object],

fun: [Function: errnoException],

pos: 22930 },

{ receiver: [Object], fun: [Function: onread], pos: 14545 },

{},

{ receiver: [Object],

fun: [Function: fireErrorCallbacks],

pos: 11672 },

{ receiver: [Object], fun: [Function], pos: 12329 },

{ receiver: [Object], fun: [Function: onread], pos: 14536 } ],

__previous__:

{ [Error]

id: 1061835,

location: 'fireErrorCallbacks (net.js:439)',

__location__: 'process.nextTick',

__previous__: null,

__trace_count__: 1,

__cached_trace__: [ [Object], [Object], [Object] ] } }

Here I serve the flash socket policy file:

net = require("net")

net.createServer( (socket) =>

socket.write("<?xml version=\"1.0\"?>\n")

socket.write(""http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\">\n")

socket.write("\n")

socket.write("\n")

socket.write("\n")

socket.end()

).listen(843)

Can this be the cause?

mysql econnreset_如何在Node.js中调试错误ECONNRESET?相关推荐

  1. 如何在node.js中发出HTTP POST请求?

    如何在node.js中使用数据发出出站HTTP POST请求? #1楼 如果您使用请求库,这会变得更容易. var request = require('request');request.post( ...

  2. 如何在Node.js中打印堆栈跟踪?

    本文翻译自:How to print a stack trace in Node.js? 有谁知道如何在Node.js中打印堆栈跟踪? #1楼 参考:https://stackoom.com/ques ...

  3. 如何在Node.js中获取本机本地IP地址

    最近在做Cloud related的项目时,遇到一个问题,就是如何在Node.js中获取本机的IP地址.Node.js提供的API中,只能获取本机的hostname. os = require('os ...

  4. 如何在Node.js中退出

    用于退出的命令是什么? (即终止Node.js进程) #1楼 从命令行, .exit就是你想要的: $ node > .exit $ 它在REPL文档中有记录 . REPL(Read-Eval- ...

  5. 如何在Node.js中处理POST数据?

    如何提取Node.js中 HTTP POST方法发送的表单数据( form[method="post"] )和文件上传? 我已经阅读了文档,谷歌搜索并没有发现任何东西. funct ...

  6. 如何在Node JS中卸载NPM模块?

    本文翻译自:How to uninstall npm modules in node js? As commonly known, any npm module can be installed by ...

  7. php能反序列化js的吗,javascript – 如何在node.js中反序列化PHP会话?

    我将 PHP $_SESSION数据存储在数据库中. 然后从Node.js服务器,我想获取该数据并反序列化它. con.query('SELECT user_id, data ' + 'FROM se ...

  8. ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)

    当你在浏览器中查看网页时,其实是在向互联网上的另一台计算机发出请求,然后它会将网页提供给你作为响应.你通过互联网与之交谈的那台计算机就是Web服务器,Web服务器从客户端(例如你的浏览器)接收HTTP ...

  9. rethinkdb_如何在Node.js应用程序中使用RethinkDB

    rethinkdb 这篇文章是由同行评审Agbonghama柯林斯和马丁·马丁内斯 . 感谢所有SitePoint的同行评审员使SitePoint内容达到最佳状态! Web应用程序最常见的任务之一就是 ...

最新文章

  1. 3月第一周几个要处理的问题
  2. outerDocument访问外部属性方法
  3. HTTP1.0 、 HTTP1.1、HTTP2.0的主要区别
  4. C# 2.0泛型编程基础(1)
  5. filezilla检查新版本mac_filezilla中文版mac下载
  6. Fireworks-CS5入门到高级129讲视频教程
  7. 怎么SSH远程连接云服务器
  8. 卡尔曼滤波器MATLAB实现(从一维到三维)
  9. 偏差-方差分解简要推导
  10. layim框架+websocket即时通讯功能
  11. 简述TCP三次握手,看不懂算我输!
  12. JavaScript中deferred对象浅析
  13. 测试dns的工具--rndc,dig命令----DNS排错,在线修改bind(nsupdate)
  14. 码绘——动态图形艺术自画像
  15. Mac安装多版本java
  16. <汇编>七种寻址方式
  17. ELS3120代替品MPCS-341 3A 光电耦合器 用于IGBT/MOSFET隔离栅极驱动芯片
  18. 红旗 linux 在哪儿 看 版本,简介红旗Linux不同版本的介绍
  19. 如何截取第一个括号_王者荣耀如何取空白名和重复名
  20. 离散数学·代数结构【正规子群、商群、群的同态和同构、环与域、格、布尔代数】

热门文章

  1. [转贴]Silverlight 2教程中文版 - Scott Guthrie 博客中文版 - 博客堂翻译
  2. 强烈推荐一个超棒的可学习更可商用的快速开发框架——WTM快速开发框架(开源)
  3. ese如何实现支付 nfc_基于nfc的支付方法、基于nfc的支付系统和终端的制作方法...
  4. Vim安装插件管理器Vundle
  5. linux vi 改文件名,Linux命令符之编辑文本vi命令及修改文件名mv命令
  6. 打印机扫描时提示无网络连接
  7. 百度升级蓝天算法:打击网站出租目录行为
  8. 地图-高德 天地图 WMTS 服务及规则
  9. 如何使origin绘制的图形横纵坐标比例一致
  10. 如何在python 中安装pygame_如何安装pygame-fon