我正在使用node-mysql https://github.com/felixge/node-mysql
这种情况发生在随机时间,不太确定是什么触发了它。我在长时间不活动后收到它,但并不总是发生。这是下面的堆栈跟踪: -
server-0 (err): Trace: AUTHENTICATION ERROR: Error: This socket has been ended by the other party. Auth: abcuser
server-0 (err): at /var/www/dating/www/libs/authentication.js:36:17
server-0 (err): at _rejected (/var/www/dating/www/node_modules/q/q.js:807:24)
server-0 (err): at /var/www/dating/www/node_modules/q/q.js:833:30
server-0 (err): at Promise.when (/var/www/dating/www/node_modules/q/q.js:1077:31)
server-0 (err): at Promise.promise.promiseDispatch (/var/www/dating/www/node_modules/q/q.js:751:41)
server-0 (err): at /var/www/dating/www/node_modules/q/q.js:573:44
server-0 (err): at flush (/var/www/dating/www/node_modules/q/q.js:108:17)
server-0 (err): at nextTickCallbackWith0Args (node.js:415:9)
server-0 (err): at process._tickDomainCallback (node.js:385:13)
我正在使用restify服务器。
托管在使用nginx和带代理的nodejs配置的数字海洋上。
任何帮助?
答案 0 :(得分:0)
您可以通过以下方式更详细地了解这一点:
查看连接和断开连接之间的时差。看看它是否一致。然后检查是否有特定时间的超时设置。你可能会超时。
使用NODE_DEBUG
环境变量。
env NODE_DEBUG=* node yourprogram.js args
这将使节点显示内部跟踪,例如套接字正在执行的操作。您还可以使用NODE_DEBUG=net,tls
代替*
使用Wireshark,侦听该端口并按照流进行操作。您可以看到导致断开连接的原因。例如:如果设置了带有RST标志的TCP数据包,请查看发送它的主机。