Угловой прокси не может обрабатывать два параллельных вызова по одному и тому же пути

У меня есть приложение angular, которое использует SSE-поток из моего Java Spring Backend. Проблема возникает, когда я пытаюсь выполнить REST-вызовы по тому же пути.

Итак, у меня есть такой код (упрощенный):

let eventSource = new EventSource('/api/my-favorite-path');
eventSource.onmessage....

proxy.conf.json:

{
    "/api/*": {
    "target": "http://localhost:8888",
    "secure": false
    }
}

Теперь, когда я пытаюсь сделать это где-нибудь еще:

httpClient.get('/api/my-favorite-path')

Вызов никогда не заканчивается и загружается навсегда. В противном случае мой eventSource работает без проблем и правильно подписывается и т. Д., И я также могу выполнять REST-вызовы на другие пути, которые правильно маршрутизируются через прокси-сервер angular, но имеют sse-вызов (который никогда не завершается), а затем выполняет еще один REST-вызов перед ним отделка не представляется возможной по тому же пути.

У кого-нибудь есть совет, как я могу протестировать это локально?


person Juliette    schedule 27.12.2020    source источник


Ответы (1)


Я обнаружил проблему: это не имеет ничего общего с прокси-сервером angular, а вместо этого вызвано ограничением браузера максимум 5 одновременными http-соединениями - ›это означает, что когда я открыл слишком много SSE-соединений, этот предел был достигнут, и все дальнейшие вызовы заблокированы .

Использование только одного sse-соединения, содержащего тему / поток, вместо нескольких соединений для каждого типа событий, решило проблему. Если в одном браузере открыто более 5 вкладок, он снова сломается.

person Juliette    schedule 27.12.2020