15-05-2015, 11:22:25
Hallo,
Ich muss mal Nerven.
Auf meinem Handy habe ich eine App "Home Control". Wenn ich dort das erste mal einen Status Wechsel (Licht an) dauert das 3-4 Sekunden.
Wenn ich an dann nochmal ändere, geht das quasi sofort. Ohne Verzögerung. Bei meiner Webseite dauert es aber immer 3-4Sekunden. Was mache ich falsch? Ich generiere quasi eine requestID bei jedem Aufruf neu. Aber die SessionID und ClientID Cache ich. D.h. Wenn man auf Licht an drückt, wird nur ein Befehl ausgeführt und zwar dieser:
Ich sende folgendes durch den Request:
SessionID und ClientID ist definitiv die, womit ich zuvor schon was gemacht habe.
Es Werden parallel oder vorher auch keine anderen Anfragen ausgeführt.
Das https.request wird sofort nach dem Klick ausgeführt, dass weiß ich, weil ich davor einen Text in die Konsole schreibe "sende Befehl". Nach dieser Ausgabe dauert es dann 3-4 Sekunden, bis "Smarthome response was positiv" kommt.
Also liegt es klar an diesem einem request.
Kann sich das eventuell jemand erklären?
Danke!!
Ich muss mal Nerven.
Auf meinem Handy habe ich eine App "Home Control". Wenn ich dort das erste mal einen Status Wechsel (Licht an) dauert das 3-4 Sekunden.
Wenn ich an dann nochmal ändere, geht das quasi sofort. Ohne Verzögerung. Bei meiner Webseite dauert es aber immer 3-4Sekunden. Was mache ich falsch? Ich generiere quasi eine requestID bei jedem Aufruf neu. Aber die SessionID und ClientID Cache ich. D.h. Wenn man auf Licht an drückt, wird nur ein Befehl ausgeführt und zwar dieser:
PHP-Code:
var postRequest = {
hostname: "192.168.178.64",
rejectUnauthorized: false,
secureProtocol: 'SSLv3_method',
path: "/cmd",
method: "POST",
headers: {
'Content-Length': Buffer.byteLength(body, 'utf8'),
'ClientId': clientId
}
};
var req = https.request(postRequest, function(res) {
log("Smarthome response was positive");
});
Ich sende folgendes durch den Request:
PHP-Code:
return '<?xml version="1.0"?>' +
'<BaseRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SetActuatorStatesRequest" BasedOnConfigVersion="112" RequestId="' + getRequestID() +
'" Version="1.70" SessionId="' + sessionID + '">' +
'<ActuatorStates>' +
'<LogicalDeviceState xsi:type="' + type + '" LID="' + deviceId + '" IsOn="' + state + '"/>' +
'</ActuatorStates>' +
'</BaseRequest>';
SessionID und ClientID ist definitiv die, womit ich zuvor schon was gemacht habe.
Es Werden parallel oder vorher auch keine anderen Anfragen ausgeführt.
Das https.request wird sofort nach dem Klick ausgeführt, dass weiß ich, weil ich davor einen Text in die Konsole schreibe "sende Befehl". Nach dieser Ausgabe dauert es dann 3-4 Sekunden, bis "Smarthome response was positiv" kommt.
Also liegt es klar an diesem einem request.
Kann sich das eventuell jemand erklären?
Danke!!