Приложение PhoneGap не работает с IPv6 на iPhone - PullRequest
0 голосов
/ 12 мая 2019

У меня есть приложение на основе PhoneGap, которое использует WebSockets. Он хорошо работает под Android и Windows (через Chrome) - как для IPv4, так и для IPv6. Однако на iPhone он работает только с IPv4.

Например, если я использую адрес «104.217.75.167» (мой тестовый сервер), он работает на Android, Windows и iPhone. Если я использую ":: ffff: 104.217.75.167" или ":: ffff: 68d9: 4ba7" (то же самое), он работает только на Android и Windows, но не на iPhone.

Полагаю, проблема в браузере Safari (WebKit), потому что механизм PhoneGap использует его в качестве основы приложения. Но у меня нет Mac для его отладки.

Я использую следующий код:

    const ip_input = <HTMLInputElement>document.getElementById("ipaddress");
    const ip: string = ip_input.value.replace(/\s/g, ''); // remove spaces
    const isIpV6 = ip.includes(':');
    const bracketedIp = isIpV6 ? '['+ip+']' : ip;
    const fullAddr: string = "ws://" + bracketedIp + ":44405/websocket";
    TheSocket = new WebSocket(fullAddr);

Что может быть не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...