J'ai un périphérique iot qui fait de la publicité dans mon réseau avec le nom iotdevice.local, je peux envoyer des requêtes http à ce domaine dans mon Windows PC après l'installation de Bonjour. Mais je développe une application ionique à partir de laquelle je communiquerai fréquemment avec cet appareil. Donc j'utilise cordova-zeroconf-plugin. (https://www.npmjs.com/package/cordova-plugin-zeroconf). Je vois les services quand j'ajoute watch pour les services .local. mais ma demande est fausse quand j'utilise iotdevice.local dans la fonction $ http. J'ai ce code app.jsImpossible de communiquer avec l'appareil avec le domaine .local en utilisant 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);
}
});
}
Il fonctionne très bien et dans les journaux je vois mon appareil
{ "action": "ajoutée", "service": { "l'application ":" http "," domaine ":" local "," port ": 80," nom ":" iotdevice "," serveur ":" iotdevice.local. "," description ":" \ 00 "," protocole " ":" tcp "," qualifiedname ":" iotdevice._http._tcp.local. "," type ":" _ http._tcp.local. "," txtRecord ": {}," adresses ": [" 192.168.0.4 "]," urls ": [" http://192.168.0.4:80 "]}}
Mais quand je l'utiliser dans 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;
});
}
Il ne fonctionne pas. Le statut de la demande est toujours -1. quelqu'un peut-il m'aider comment je peux faire face à son. Est-ce que je fais quelque chose de fondamentalement faux?
Essayez de remplacer if (action == 'added') avec if (action == 'resolved'). Cela a fonctionné pour moi. – alfredo