Привет. На android всё норм, на десктопе аналогично, а на iphone как-то странно, через попу,браузер (safari) не хочет создавать сокет с сервером, делает это через раз (даже хуже). js такой:
function connectWs() {
const ws = new WebSocket("ws://" + location.host + "/ws");
ws.onmessage = function (event) {
const msg = event.data;
const cmd = msg[0];
const value = msg.slice(1);
switch (cmd) {
case '0':
{
const el = document.getElementById("counter0_value");
if (el)
el.textContent = value;
break;
}
case '1':
{
const el = document.getElementById("counter1");
if (el)
el.textContent = value;
break;
}
case '2':
location.reload();
break;
case '3':
console.log("ping");
break;
}
};
ws.onclose = () => {
setTimeout(connectWs, 500);
};
}
connectWs();
Сервер должен держать постоянный ws канал, обновлять счетчики на странице, перезагружать страницу. Пытался сделать app level ping (case 3) - без толку, отсылал нормальный пинг (который js не видит) вплоть до с 1 сек таймаутом.
Я вообще не вкурсе что там за айфоноспецифичные штучки такие, и js человек новый, мне нужно быстро накостылить рабочую версию на всех устройствах, а не только на андройдах. Объясните, пожалуйста, что это за хрень и как побороть.
PS: проблемы с сетью можно отсечь, клиенты-сервер в тестах в одной локалке





