Websocket в архитектуре Jhipster Microservices - PullRequest
0 голосов
/ 23 апреля 2020

Я пытался внедрить 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"
...