#node.js #electron #grpc #grpc-node
#node.js #электрон #grpc #grpc-узел
Вопрос:
Я использую @grpc/grpc-js
модуль и настроил образец сервера gRPC:
Когда я запускаю сервер gRPC в electron, если я отправляю ответ после «тайм-аута», ответ вообще не отправляется клиенту. Он не закрывает поток http2 должным образом. Тот же сервер отлично работает при запуске непосредственно в узле, но выдает эту проблему при запуске через electron.
Проблема не возникает, если я отправляю ответ непосредственно вне функции тайм-аута.
Пример минимального проекта, который демонстрирует проблему: https://github.com/nateshmbhat/grpc-with-electron-sample-project
Ожидаемое поведение
Когда сервер gRPC отправляет ответ с таймаутом или без него, ответ должен дойти до клиента, и связанные потоки должны закрыться должным образом.
Фактическое поведение
Хотя сервер отправляет ответ, ответ не доходит до клиента. Таким образом, соединение и поток не закрываются.
Я также подал вопросы для этого здесь:
Комментарии:
1. Я думаю, что
timeout
используется только для установки крайнего срока для открытия соединения. Прочитайте это github.com/carlessistare/grpc-promise2. согласно
doc
, если я правильно понимаю, вы уже привязываете сервер в bindAsync , потому что результат будет асинхронным, так что в чем пользаsettimeout
.