Я использую Stomp и Sockjs для регистрации веб-сокета на моем автономном сервере Spring Boot (3.1.1), и все работает нормально. Однако я реализовал ServiceWorker для обработки автономных служб, и все они работают, кроме сокета. Вызов ws: // localhost / registerSocket приводит к этой ошибке во внешнем интерфейсе:
Firefox не может установить соединение с сервером по адресу ws: // localhost / registerSocket / 351 / 4vevdv79 / websocket.
И это на бэкэнде:
ОШИБКА o.s.w.s.s.s.DefaultHandshakeHandler - Не удалось выполнить рукопожатие из-за недопустимого заголовка обновления: null
В моем ServiceWorker я специально исключил его из перехвата запроса ws:
if (uri.indexOf("/registerSocket") === -1) {
event.respondWith(getResponse(event));
}
Тем не менее, обновление ws неизбежно терпит неудачу, и он возвращается к полифиллу старого стиля кометы.
Кто-нибудь знает, как заставить веб-сокеты правильно работать с ServiceWorker?
event.responseWith
должно бытьevent.respondWith
. Не могли бы вы попробовать добавить запись в журнал для события «выборка» и посмотреть, срабатывает ли оно при открытии веб-сокета? - person Marco Castelluccio   schedule 26.01.2016