Получение ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY в Chrome с использованием Azure-iothub SDK - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть простой класс javascript, который создает / удаляет устройства внутри IoT-концентратора Azure, используя модуль azure-iothub Node.js .

class AzureManager {
    constructor(options) {
      const { connectionString } = options;
      this.registry = iothub.Registry.fromConnectionString(connectionString);
    }

   /**
    * Gets some stats about the Iot Hub selected
    * @returns {Object} an object with the following properties:
    * totalDeviceCount, enabledDeviceCount, disabledDeviceCount
    */
   getStats() {
      return new Promise((resolve, reject) => {
          this.registry.getRegistryStatistics((err, stats, res) => {
              if (err) {
                  return reject(err);
              }

              return resolve(stats);
          });
      });
   }
}

Я разработал Jestтест для этого класса, и когда я его выполняю, все тесты проходят без проблем.Когда я выполняю код внутри Chrome, я получаю следующую ошибку:

request.js: 150 ВАРИАНТОВ https://pysensors.azure -devices.net / statistics / devices? Api-version = 2018-06-30 net :: ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY

Я не знаю, нужно ли мне что-то настраивать, чтобы оно работало во всех последних версиях браузеров.Я нашел это сообщение на форуме (как-то похоже на это сообщение в блоге ), в котором говорится о проблеме набора шифров на стороне сервера и вынуждает клиента использовать HTTP1 / 1, ноПоскольку я использую SDK, я не могу контролировать, как выполняется запрос.Спасибо

EDIT : только что обнаружил, что модуль, который я использую, предназначен для использования только на стороне сервера.При использовании Firefox у меня нет проблемы SPDY, в любом случае у меня возникают проблемы с CORS, поскольку Azure не поддерживает их.Я где-то читал, что это в их дорожной карте, но не является главным приоритетом.

1 Ответ

0 голосов
/ 22 ноября 2018

Официальный ответ Microsoft:

Это ошибка на стороне службы IoTHub.Сервис IoTHub пока не поддерживает протокол HTTP / 2, но из-за ошибки мы возвращаем HTTP / 2 в качестве поддерживаемого протокола в расширении ALPN во время первоначального рукопожатия.Мы собираемся исправить эту ошибку в ближайшее время, но до тех пор вы можете настроить свой клиент на постоянное использование протокола HTTP / 1, который поддерживается и работает хорошо.

Пожалуйста, проголосуйте за эту функцию на канале обратной связи IoT Azure, чтобы мыможет расставить приоритеты.Спасибо!

Поддержка HTTP 2.0

https://feedback.azure.com/forums/321918-azure-iot/suggestions/9958737-http-2-0-support

Подробности: https://social.msdn.microsoft.com/Forums/azure/en-US/0cf59124-f8f0-4fb2-ba20-5666894341cb/errspdyinadequatetransportsecurity-error-on-rest-api-call-in-chrome?forum=azureiothub

...