套接字IO在端口3000上进行了扩展

时间:2014-07-23 01:10:56

标签: javascript mysql linux node.js socket.io

我使用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})

提前感谢您的帮助。如果您需要更多信息,请与我们联系。抱歉 如果这篇文章有点长。

1 个答案:

答案 0 :(得分:4)

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