У меня есть простой класс javascript, который создает / удаляет устройства внутри Azure IoT Hub, используя 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, Я не могу контролировать, как выполняется запрос. Спасибо
РЕДАКТИРОВАТЬ: только что обнаружил, что модуль, который я использую, предназначен для использования только на стороне сервера. Используя Firefox, у меня нет проблемы с SPDY, но в любом случае у меня возникают проблемы с CORS, поскольку Azure не поддерживает ее. Я где-то читал, что это в их дорожной карте, но не в приоритете.