2015-08-02 9 views
5

ho creato un semplice server WebSocket e sto cercando di connettersi ad esso con il seguente codice:WebSocket di non lavorare su localhost Microsoft Edge

function test(name) { 
    var ws = new WebSocket('ws://localhost:1234'); 
    ws.onopen = function() { 
     ws.send('Hello from ' + name); 
    } 
} 
test('Edge'); 

Questo funziona bene da Chrome e IE11 su Windows 10, ma quando ho provare dal bordo, la funzione onopen non si chiama, invece alla fine ho ottenere il seguente errore:

SCRIPT12029: WebSocket Error: Network Error 12029, A connection with the server could not be established

Ciò sta accadendo per la versione 12,10,24 mila di Edge.

Un problema simile è stato chiesto here ma il messaggio di errore è diverso.

cose che ho provato:

  • IP - localhost, 127.0.0.1, l'IP effettivo
  • Consenti localhost loopback bandiera - sia dentro che fuori

Quando si cerca di comunicare con una macchina diversa il problema non si verifica.

Si tratta di un difetto in Edge o sto facendo qualcosa di sbagliato?

+0

Rapporto bug a Microsoft forse? – Jan

+0

@Jan ho inviato un feedback, ma in parallelo voglio fare in modo che non mi manca qualcosa di ovvio (Non ho molta esperienza con WebSockets) – Motti

+1

Forse, ma questo sicuro suona come un bug per me. – Jan

risposta

7

Ho avuto un problema simile, ma era in realtà nel browser. Potrei usare la frase localhost e ha funzionato bene, ma non ho funzionato quando ho usato il nome della mia macchina. Ho trovato this forum dove hanno suggerito che si esegue il seguente comando nel prompt amministratore:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe 

lavorato per me. Ho pensato che potresti vedere qualche forma dello stesso problema.

Come suggerisce il forum, ora è possibile farlo anche con l'apertura di Edge e la navigazione verso "circa: bandiere", quindi spuntare "Consentire localhost loopback (questo potrebbe mettere il vostro dispositivo a rischio)" sotto "Sviluppatore Impostazioni". Dovresti sentirti un po 'più sicuro che incollare elementi casuali nel tuo prompt dei comandi.

+3

Nelle versioni recenti di Edge, il flag di loopback sembra essere abilitato di default ora, tuttavia la correzione 'CheckNetIsolation' sembra essere necessaria a prescindere. – tresf

+0

@QZSupport Ho avuto il problema simile e "CheckNetIsolation" l'ha risolto per me. Che cosa fa? – Sanich

+2

@Sanich la spiegazione da MS è "Edge funziona come un'app moderna di Windows diversa da IE e quindi ha l'isolamento di rete per impostazione predefinita per motivi di sicurezza.".Nota anche, "Rileva automaticamente impostazioni" in Local Intranet Zone può avere un effetto simile in IE se su un dominio. https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/ – tresf