#node.js #azure #spring-boot #websocket
#node.js #azure #весенняя загрузка #websocket
Вопрос:
Я использую эту node.js
библиотеку для того, чтобы Reconnect
получить EventSource
ответ на случай, если она закроется.
Проблема
Мое веб-приложение размещено в Microsoft Azure, в котором я включил Web Sockets
После 240000ms
закрытия объекта источника события с ошибкой ожидания шлюза 504.
Архитектура веб-приложения:
Проект разработан с использованием Spring boot
фреймворка, и это одна из моих конечных точек потоковой передачи
@GetMapping(path = "/completed/receive", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Event> receiveCompleted() {
return Flux.create(sink -> {
completedProcessor.register(sink::next);
});
}
Заголовки, которые я пробовал, не сработали
Connection : Keep-Alive
Keep - Alive: timeout=500000
Включить веб-сокеты из Microsoft Azure
Как я прослушиваю конечную точку с помощью JS
var eventSourceCompleted;
eventSourceCompleted = new ReconnectingEventSource("/api/completed/receive");
// Receive messages
eventSourceCompleted.onmessage = function (evt) {
//Do Something
};
eventSourceCompleted.onerror = function (e) {
console.log("EventSource failed: " e);
};
Что бы я ни пытался, через 240 тыс. мс соединение закрывается, как это может быть?
Комментарии:
1. Ваш вопрос очень сложный. У меня есть две идеи, мы можем обратиться к ним вместе.
2. 1. Прежде всего, рекомендуется добавить журнал в программу, проверить состояние выполнения программы на портале и журнал до и после сообщения об ошибке.
3. 2. Рекомендуется размещать выпуски на github и описывать конкретное явление вашей проблемы. Возможно, в их текущей версии есть такая ошибка.
4. Я лично считаю, что это не проблема, связанная с библиотекой,
new EventSource()
in<script>
имеет это странное поведение само по себе,new ReconnectingEventSource()
используетсяnew EventSource()
в исходном коде. Итог, еслиnew EventSource()
не удастся повторно подключиться, то эта библиотека также не будет работать. Вlocalhost
это работает, в Azure — нет.5. Проверьте журнал на портале, видите ли вы какие-либо сообщения об ошибках?