Node.js websocket错误"错误:听EADDRNOTAVAIL错误:听EADDRNOTAVAIL"

has*_*ash 8 javascript ubuntu-server websocket node.js total.js

应用程序在localhost上正常工作.但是当它连接到服务器时它会出错.
我通过端口22连接服务器

这是错误

Error: listen EADDRNOTAVAIL Error: listen EADDRNOTAVAIL
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1023:19)
at listen (net.js:1064:10)
at net.js:1146:9
at dns.js:72:18
at process._tickCallback (node.js:419:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
at node.js:906:3
Run Code Online (Sandbox Code Playgroud)

任何帮助!

-update-

我跑 netstat -tulpn | grep 22

结果:

 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      683/sshd
 tcp6       0      0 :::22                   :::*                    LISTEN      683/sshd
Run Code Online (Sandbox Code Playgroud)

但我跑了 netstat -tulpn | grep 80

什么都没有显示.

任何Help.is这个服务器故障?

赛跑 netstat -nlt

     Active Internet connections (only servers)
     Proto Recv-Q Send-Q Local Address           Foreign Address         State
     tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN
     tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN
     tcp        0      0 127.0.0.1:5902          0.0.0.0:*               LISTEN
     tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN
     tcp        0      0 0.0.0.0:6002            0.0.0.0:*               LISTEN
     tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
     tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
     tcp6       0      0 :::22                   :::*                    LISTEN
     tcp6       0      0 ::1:631                 :::*                    LISTEN
Run Code Online (Sandbox Code Playgroud)

运行 netstat -anp | grep :80

     tcp        1      0 162.243.145.226:60728   91.189.94.25:80         CLOSE_WAIT  1726/ubuntu-geoip-p
     tcp        1      0 162.243.145.226:47842   74.125.239.148:80       CLOSE_WAIT  8104/epiphany-brows
     tcp        1      0 162.243.145.226:60727   91.189.94.25:80         CLOSE_WAIT  1417/ubuntu-geoip-p
     tcp        1      0 162.243.145.226:58818   198.41.30.199:80        CLOSE_WAIT  8104/epiphany-brows
Run Code Online (Sandbox Code Playgroud)

Cor*_*ein 7

今天刚看到这个。用户必须注释掉127.0.0.1 localhost在他们的/etc/hosts文件,和其他网络服务被解析localhost到一个不同的IP地址与用户的机器有关。

解决方案是将此行添加到 /etc/hosts

127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)


小智 6

您正在使用二手港口.您必须更改端口,否则必须终止正在侦听端口的进程.打开终端并写入(示例):或者和lsof -i :22/ lsof -i :80或进程.lsof -i :8000kill PID


如何在total.js中更改侦听PORT

  1. / app/config/ app/config-release/ app/config-debug中:
default-ip       : 127.0.0.1
default-port     : 8000
Run Code Online (Sandbox Code Playgroud)

要么

// For e.g. Heroku
default-ip       : auto
default-port     : auto
Run Code Online (Sandbox Code Playgroud)
  1. 如果存在文件:release.jsdebug.js:
var fs = require("fs");
var options = {};

// options.ip = "127.0.0.1";
// options.port = parseInt(process.argv[2]);
options.port = 8000;
Run Code Online (Sandbox Code Playgroud)
  1. 如果只存在index.js
// for development:
require('total.js').http('debug', { port: 8000 });

// or for production:
require('total.js').http('release', { port: 8000 });
Run Code Online (Sandbox Code Playgroud)

谢谢和文档:http://docs.totaljs.com