我使用socket.io 0.9.16运行节点服务器并在重新启动后运行 我的服务器最近我得到了上面提到的错误:
{ [Error: connect ECONNREFUSED]
stack: 'Error: connect ECONNREFUSED\n at exports._errnoException (util.js:676:11)\n at Object.afterConnect [as oncomplete] (net.js:938:19)\n --------------------\n at Protocol._enqueue (
/var/www/node_modules/mysql-activerecord/node_modules/mysql/lib/protocol/Protocol.js:110:48)\n at Protocol.handshake (/var/www/node_modules/mysql-activerecord/node_modules/mysql/lib/protocol/Protoc
ol.js:42:41)\n at Connection.connect (/var/www/node_modules/mysql-activerecord/node_modules/mysql/lib/Connection.js:98:18)\n at Connection._implyConnect (/var/www/node_modules/mysql-activerecord
/node_modules/mysql/lib/Connection.js:296:10)\n at Connection.query (/var/www/node_modules/mysql-activerecord/node_modules/mysql/lib/Connection.js:154:8)\n at get (/var/www/node_modules/mysql-ac
tiverecord/index.js:387:15)\n at Manager.<anonymous> (/var/www/mutual.js:101:71)\n at Manager.authorize (/var/www/node_modules/socket.io/lib/manager.js:910:31)\n at Manager.handleHandshake (/
var/www/node_modules/socket.io/lib/manager.js:786:8)\n at Manager.handleRequest (/var/www/node_modules/socket.io/lib/manager.js:593:12)',
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
fatal: true }
nmap localhost返回:
Starting Nmap 5.21 ( http://nmap.org ) at 2014-07-22 21:02 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000050s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 992 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
587/tcp open submission
3000/tcp open ppp
3306/tcp open mysql
9000/tcp open cslistener
netstate -an | grep&#34; LISTEN&#34;返回
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN
...
iptables --list返回
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:3000
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
相关服务器代码:
var mysql = require('mysql-activerecord'),
marked = require('marked'),
conn = new mysql.Adapter({
server: 'server-name',
username: 'user',
password: 'pass',
database: 'database'
}),
moment = require('moment');
var io = require('socket.io').listen(3000);
相关客户代码:
a=io.connect("http://server-name:3000/",{query:stuff})
提前感谢您的帮助。如果您需要更多信息,请与我们联系。抱歉 如果这篇文章有点长。
答案 0 :(得分:4)
ECONNREFUSED与socket.io无关,如果查看错误中提供的回溯,可以看到它来自mysql
模块。所以看来你的mysql服务器没有在端口3306上监听server-name
(或者至少阻止了对它的访问)。