Я пытаюсь заставить работать образцы Dialogflow SDK из Google Dialogflow v2 Node.js SDK. Я использую node.js v8.10.0
с пакетом SDK для диалогового потока node.js версии 0.5.0
. Я сталкиваюсь с этой проблемой при попытке запустить пример «Определить намерение» из-за корпоративного прокси-сервера http/s:
Auth error:Error: write EPROTO 140163148314432:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:827
Я наткнулся на этот пост здесь: https://medium.com/google-cloud/accessing-google-cloud-apis-though-a-proxy-fe46658b5f2a, которая казалась очень ориентированной на Java, но предложила установить переменную среды GRPC_PROXY_EXP
, чтобы получить Вызовы gRPC работают за прокси. Я установил переменную среды в оболочке, из которой я запускал узел с export GRPC_PROXY_EXP="$https_proxy"
, и попытался снова запустить образец с той же проблемой. Обратите внимание, что мои переменные $http_proxy
, $https_proxy
одинаковы.
Тот же образец работает с той же машины при подключении к сети Wi-Fi без прокси; а анализ пакетов tcpdump
показывает, что используются два TCP-соединения (разные порты): одно работает (и открывается первым), а другое не работает и обнаруживает ошибку с прокси-сервером. Второе соединение немедленно начинает сообщение CLIENT_HELLO
TLS, когда ему необходимо сначала пройти аутентификацию и отправить прокси-серверу HTTPS сообщение CONNECT
(как это делает первое соединение TCP).
Я что-то упустил, или это проблема с библиотекой узлов диалогового потока (google-gax / grpc)?