Я пытался внедрить Websocket в один из моих микросервисов согласно введите описание ссылки здесь . При подключении его из компонента Angular, как показано ниже:
const ws = new SockJS("http://localhost:9000/my-microservice/socket");
this.stompClient = Stomp.over(ws);
// header contains X-XSRF-TOKEN
this.stompClient.connect(headers, () => {
// Subscribe code
});
});
Как и выше, я ожидал, что он не должен напрямую подключаться к микросервису, а должен go через прокси-сервер zuul (через шлюз). но это терпит неудачу с ошибкой ниже:
'ws://localhost:9000/my-microservice/socket/273/ub5j4vpr/websocket' failed: Connection closed before receiving a handshake response
Согласно ссылке , прокси Zuul не поддерживал websocket, но я не уверен, что это все еще имеет место с версией JHipster ( Jhipster-5.4.2 ) я использую.
Если я использую микросервисный URL-адрес, как показано ниже, он работает.
const ws = new SockJS("http://localhost:8085/socket");
Может кто-нибудь подсказать мне, как мне исправить это так, что я должен вместо этого маршрутизировать через шлюз.
Версии, которые я использую:
sockjs-client: "1.3.0",
webstomp-client: "1.2.6",
Jhipster: "5.4.2"