localhost握手不成功,真实ip成功

兴化小羊羊

我们服务器的ip是58.211.6.178,内网也打通了,ip是192.168.0.178
服务器由于托管在机房,有防火墙。
我叫机房把9090、90、2345、2346、2347等端口都开放了。

php中 gateway 进程,用了9090端口

$gateway = new Gateway("Websocket://0.0.0.0:9090");

服务注册地址,用了90端口

$register = new Register('text://0.0.0.0:90');

内部通讯起始端口,这个不明白是什么意思,默认给了2345,因为我的端口2345是连续的

html5页面中,申明的时候,用localhost是无法握手的,但是用真实ip可以

var socket = new WebSocket('ws://localhost:9090');
//无法连 failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

var socket = new WebSocket('ws://127.0.0.1:9090');
//无法连 failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

//var socket = new WebSocket('ws://0.0.0.0:9090');
//无法连

var socket = new WebSocket('ws://58.211.6.178:9090');
//可以连

//var socket = new WebSocket('ws://192.168.0.178:9090');
//无法连 failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT

现在我在想为什么127.0.0.1和localhost都无法连接。

6024 1 0
1个回答

walkor

有可能是防火墙问题,可以临时关闭防火墙试下。
还有new Gateway('websocket://0.0.0.0:9090'); 内网外网本机才能都可以连,如果是new Gateway('websocket://58.211.6.178:9090');那么只能通过58.211.6.178去连,其它IP包括localhost 和127.0.0.1都连不了。
start_gateway.php改动后要restart才能生效。

  • 兴化小羊羊 2017-02-06

    自身的防火墙好关,但是机房还有硬防。我以为0.0.0.0跟机房防火墙没关系的。那我叫机房把0.0.0.0也开通一下再试试。

年代过于久远,无法发表回答
🔝