javascript - 端口 3000 上的套接字 IO econnrefused

标签 javascript mysql linux node.js socket.io

我正在使用 socket.io 0.9.16 运行 Node 服务器并在重新启动后 我的服务器最近出现了上述错误:

{ [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 本地主机返回:

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

网络状态-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(或者至少某些东西阻止了对它的访问)。

关于javascript - 端口 3000 上的套接字 IO econnrefused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900333/

相关文章:

javascript - request-promise-native 的替代方案

PHP向数据库发送空白信息

linux - 使用循环在多个文件夹中查找今天的文件 - LINUX

Javascript float + float = 字符串?

javascript - 为什么我的每个类使用的 jQuery 片段不支持 setTimeout?

mysql - 使用 Where 子句从 Mysql 数据库中获取多条记录

php - 通过php检查用户名是否存在于mysql表中?

php7.2和oci8冲突

linux - 检查 bash 脚本上的 AWS cli 版本

javascript - 如何使用 *ngIf else 渲染组件