У меня есть устройство iot, которое рекламируется в моей сети с именем iotdevice.local, я могу отправлять http-запросы в этот домен в моем windows pc после установки Bonjour. Но я разрабатываю ионное приложение, из которого я буду часто общаться с этим устройством. Так что я использую cordova-zeroconf-plugin. (https://www.npmjs.com/package/cordova-plugin-zeroconf). Я вижу услуги, когда добавляю часы для .local услуг. но моя requestis faield, когда я использую iotdevice.local в функции $ http. У меня есть этот код App.jsНе удается связаться с устройством с .local доменом с помощью android, corova-zeroconf-plugin
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
console.log("device ready");
var zeroconf = cordova.plugins.zeroconf;
zeroconf.watch('_http._tcp.local.', function(result) {
var action = result.action;
var service = result.service;
console.log(JSON.stringify(result));
if (action == 'added') {
console.log('service added', service);
} else {
console.log('service removed', service);
}
});
}
Он отлично работает и в журналах я вижу мое устройство
{ "действие": "добавил", "сервис": { "приложений протокол \ 00 " " ":" HTTP", "домен": "местный", "порт": 80, "имя": "iotdevice", "сервер":: "iotdevice.local", "описание"." ":" TCP " "QualifiedName": " iotdevice._http._tcp.local", "тип": "_ http._tcp.local", "txtRecord.": {}, "адрес": [" 192.168.0.4 "]," URL-адреса ": [" http://192.168.0.4:80 "]}}
Но когда я использую это в controller.js -
$scope.sendRequest2 = function(){
$http({
method: 'GET',
url: 'http://iotdevice.local/events?id=600194067eba&action=socket1off'
}).then(function successCallback(response) {
$scope.req2succes=true;
console.log("Sent");
}, function errorCallback(response) {
console.log(JSON.stringify(response));
console.log("Could not Sent");
$scope.req2succes=false;
});
}
Это не работает. Статус запроса всегда равен -1. может кто-нибудь помочь мне, как я могу справиться с ним. Я делаю что-то принципиально неправильно?
Попробуйте заменить if (action == 'added') с if (action == 'resolved'). Это сработало для меня. – alfredo