1.Einleitung
In diesem Artikel werden Hinweise gegeben, die das Debuggen und die Fehleranalyse bei der Entwicklung mit der HomeServer URL-Endpoints Schnittstelle ermöglichen.
2.Allgemeine Hinweise
- Statuscodes auswerten:
Jede Nachricht des Clients über HTTP und WebSocket wird vom HomeServer/FacilityServer beantwortet. Wird eine Nachricht nicht beantwortet, liegt wahrscheinlich ein grundlegendes Problem mit der Kommunikation vor.
Die Antwort vom HS/FS beinhaltet einen Statuscode. Dieser gibt Auskunft darüber, ob der HS/FS die Nachricht des Clients auswerten und bearbeiten kann. In diesem Fall ist der Statuscode 0. Ist dies nicht der Fall, gibt des HS/FS einen Statuscode zurück der ungleich 0 ist. Eine Auflistung der möglichen Statuscodes mit ihrer jeweiligen Bedeutung befindet sich in der Dokumentation HomeServer URL-Endpoints.
Eine Nachricht an den HS/FS kann erst dann als zugestellt betrachtet werden, wenn dieser mit Statuscode 0 antwortet. Dies bedeutet allerdings nicht, dass die in der Nachricht eventuell angegebene Methode (z.B. ein Kommunikationsobjekt auf einen Wert setzen oder eine Sequenz starten) bereits vom HS/FS ausgeführt wurde. - Informationen auf der Debug-Seite:
- Bereich Exceptions:
- Liefert der HS/FS einen Statuscode ungleich 0 an den Client zurück, werden hier eine oder auch mehrere Exceptions aufgelistet, die einen Hinweis auf den Fehler in der Nachricht des Clients liefern können.
- Bereich WS:
- In diesem Bereich werden verschiedene statistische Informationen zur WebSocket Schnittstelle des HS/FS angeboten. Es werden u.a. die derzeit aktiven Verbindungen angezeigt.
- Bereich Exceptions:
3.Hinweise zum Einsatz der URL-Endpoints JavaScript API
- Debugger des Browsers nutzen:
In fast allen modernen Browsern stehen JavaScript Debugger entweder von Haus aus (Chrome und Internet Explorer) oder als Plugin (Firebug für Firefox und Safari) zur Verfügung. - In den Callback-Methoden den Fehlerparameter auswerten:
Wird einer Methode der API ein Callback übergeben, so weist dieses in seiner Signatur stets einen Fehlerparameter (err) auf. Ist dieser beim Aufruf der Callback-Methode gesetzt (also nicht undefined), muss im Code entsprechend darauf reagiert werden. - Beispiel:
var connectionOptions = {"host": homeserverIp, "port": homeserverPort};
var homeServerConnection = HomeServerConnector.createConnection(name, password, connectionOptions);
var camArchCorridor = homeServerConnection.getCameraArchive('SC@camArchCorridor');
camArchCorridor.getPicture(userPictureId, function(err, pictureId, dataUrl){
if(err){
console.error("camArchCorridor.getPicture() failed!", err);
showErrorToUser("Kamerabild konnte nicht abgerufen werden.")
return;
}
showImage(pictureId, dataUrl);
});
- Quellcode der URL-Endpoints JavaScript API verwenden:
Um Fehler auszuwerten die innerhalb der API auftreten oder die Abläufe der API nachzuvollziehen bzw. zu debuggen, kann statt der für den Produktiveinsatz optimierten Version hs.min.js der Quellcode der API verwendet/eingebunden werden. Die Datei hs.src.js befindet sich im Verzeichnis URL-Endpoints\JS\API\src.