調用說話的Node.js(就當使用IPV6 IP的WebSocket接口
我的JavaScript客戶端是工作的罰款[我舉報了這個問題,由主持人,直到我得到的回答我的問題this被刪除] Ubuntu,更多here)服務器通過WebSocket接口與IPV4 IP地址。
即使我的主機提供商已準備好分配IPV4,但讓我改爲使用IPV6,因爲現在IPV4的供應有限。
當使用IPV6 IP我得到這個錯誤:
WebSocket connection to 'ws://[2600:3c00::f03c:91ff:fe73:2b08]:31333/' failed: Error in connection establishment: net::ERR_ADDRESS_UNREACHABLE
我檢查端口31333的確是開放使用工具:http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-port-scanner.php
我甚至試過的解決方案,如IPv6 address giveing syntax error in internet explorer-10 websocket - 即:2600-3c00-0-0-f03c-91ff-fe73-2b08.ipv6-literal.net
我已經運行此客戶端,並且能夠在兩臺服務器都在遠程運行時連接到服務器基於Ubuntu的服務器:
var WebSocket = require('ws')
, ws = new WebSocket('ws://[2600:3c00::f03c:91ff:fe73:2b08]:31333');
ws.on('open', function() {
ws.send('something');
});
ws.on('message', function(message) {
console.log('received: %s', message);
});
然而,當我從我的Windows 7,而服務器是遠程Ubuntu一個執行與此相同的客戶端,這是無法連接:
> $ node c2.js events.js:85
> throw er; // Unhandled 'error' event
> ^Error: connect ENETUNREACH
> at exports._errnoException (util.js:746:11)
> at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
我甚至在谷歌瀏覽器運行這段代碼:
var ws = new WebSocket("ws://[2600:3c00::f03c:91ff:fe73:2b08]:31333");
ws.onerror = function(err)
{
console.log(err);
alert("Connection is error...");
};
,但我得到了同樣的錯誤:
WebSocket connection to 'ws://[2600:3c00::f03c:91ff:fe73:2b08]:31333/' failed: Error in connection establishment: net::ERR_ADDRESS_UNREACHABLE websocket.html:37 Event
可能是什麼問題?
PS:在現階段,我已經停止服務器在端口31333.
您是否檢查防火牆是否阻止訪問?例如。如果你使用本地IP地址*和*監聽本地IPv6地址,那麼連接到'ws:// [:: 1]:31333'似乎按預期工作(Chrome 44.0.2403.125,Linux)。 –
目前客戶端服務器能夠在同一臺服務器上進行通信。 – user5858
您的(本地)網絡連接是否支持IPv6? –