javascript - node - websocket server php
Llamando IPV6 IP usando la interfaz WebSocket (2)
IPv6 deberá estar habilitado en el sistema, y cada enrutador entre este y el ISP, y el ISP debe estar preparado para IPv6 y proporcionárselo al usuario final. La razón por la que nslookup
funciona es que simplemente está devolviendo registros AAAA, no conectándose a través de IPv6. IPv4 no puede comunicarse directamente con IPv6, o viceversa. No puede hacer ping a un host IPv6 con un host IPv4.
[ He marcado esta pregunta para que el moderador la elimine hasta que reciba respuesta a this pregunta ]
Mi cliente de javascript funciona bien cuando hablo con el servidor node.js (en Ubuntu, más here ) a través de la interfaz WebSocket con la dirección IP IPV4.
Aunque mi proveedor de Hosting está listo para asignarme IPV4, permítame usar IPV6 ya que ahora hay un suministro limitado de IPV4.
Cuando uso la IPV6 IP estoy recibiendo este error:
Conexión de WebSocket a ''ws: // [2600: 3c00 :: f03c: 91ff: fe73: 2b08]: 31333 /'' error: Error en el establecimiento de la conexión: net :: ERR_ADDRESS_UNREACHABLE
He comprobado que el puerto 31333 está abierto con la herramienta: http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-port-scanner.php
Incluso he intentado una solución como en la dirección IPv6 que da un error de sintaxis en internet explorer-10 websocket , es decir: 2600-3c00-0-0f03c-91ff-fe73-2b08.ipv6-literal.net
He ejecutado este cliente y puedo conectarme al servidor cuando ambos se ejecutan en un servidor remoto basado en 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);
});
Sin embargo, cuando ejecuto este mismo cliente desde mi Windows 7 en casa mientras el servidor es Ubuntu remoto, no se puede conectar:
> $ 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)
Incluso he ejecutado este código en Google Chrome:
var ws = new WebSocket("ws://[2600:3c00::f03c:91ff:fe73:2b08]:31333");
ws.onerror = function(err)
{
console.log(err);
alert("Connection is error...");
};
Pero me sale el mismo error:
Conexión de WebSocket a ''ws: // [2600: 3c00 :: f03c: 91ff: fe73: 2b08]: 31333 /'' error: Error en el establecimiento de la conexión: net :: ERR_ADDRESS_UNREACHABLE websocket.html: 37 Evento
¿Cual podría ser el problema?
PD: en este momento he detenido el servidor en el puerto 31333.
IPv6 no está habilitado en su Realtek PCIe GBE Family Controller. Si lo fuera, habría una línea que decía "Dirección IPv6 local de enlace" en el resultado de ipconfig.
Vaya al panel de control> Red> Cambiar configuración del adaptador> Haga clic con el botón derecho en el adaptador> Propiedades. Compruebe IPv6 en.