套接字IO在端口3000上共享

我运行一个节点服务器使用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“LISTEN”返回

 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}) 

先谢谢您的帮助。 让我知道你是否需要任何信息。 对不起,如果这篇文章有点长。

ECONNREFUSED与socket.io无关,如果你看错误中提供的回溯,你可以看到它来自mysql模块。 所以看起来你的mysql服务器没有监听端口3306上的server-name (或者至less有东西阻止了对它的访问)。