Longpoll auf dem iPhone geht trotz SVG nur sporadisch

Begonnen von fruemmel, 21 Januar 2014, 11:30:51

Vorheriges Thema - Nächstes Thema

fruemmel

Hallo Allerseits,

ich verzweifele langsam am longpoll auf meinem iPhone unter ios7. In seltenen Fällen funktioniert das Aktualisieren der Icons nach dem Ein/Ausschalten von Lampen, dann aber wieder ewig nicht. Ich habe auf die SVG-Grafiken umgestellt, aber auch das brachte nur geringe Verbesserung. Ich habe trotz vieler Versuche noch kein Muster erkennen können, wann es geht und wann nicht. Weder Neustarts des Telefons noch von FHEM brachten bisher Klarheit.

In diesem Beitrag hier
http://forum.fhem.de/index.php/topic,17353.msg115211.html#msg115211
ist ja das Grundproblem angesprochen worden. Dennoch hätte die Variante mit den SVG-Grafiken helfen sollen. Nun habe ich mir mal die Verbindungen von FHEMWEB angesehen. Wenn ich auf dem iPhone FHEMWEB aufrufe (Port 8084, stylesheetprefix "smallscreen" oder "ios7smallscreen"), dann sehe ich am PC im Webfrontend schnell mehrere Verbindungen der Art FHEMWEB:192.168.10.70:50522 (die 70 ist die IP des iPhones im WLAN). Mindestens zwei, teilweise mehr. Das passiert auch, wenn ich am iPhone vorher alle Apps beendet habe und das iPhone neu durchstarte.

Könnte das ein Teil des Problems sein, da da ja anscheinend mehrere Verbindungen aufgebaut werden? Oder gibt es irgendeinen Weg, wie ich das Problem auf dem iPhone weiter eingrenzen kann? Unter Android habe ich die Probleme nicht, auch am PC-Browser läuft longpoll ohne Probleme.

Gruß Wolfgang

rudolfkoenig

Beim Aufruf der Seite oeffnet der iOS Browser mehrere Verbindungen zum Server (hier FHEM/FHEMWEB). Wenn die Seite geladen ist, dann darf nur noch eine Verbindung offen sein (das verwendet longpoll), das Nachladen neuer Bilder ist nicht mehr moeglich. Da die SVG-Bilder direkt ueber das longpoll Kanal geschickt werden, sollte longpoll @ iOS durch Setzen des FHEMWEB Attributes iconPath auf die SVG-Verzeichnisse moeglich sein.

Woran dein Problem liegt, weiss ich leider nicht.

fruemmel

Neue Erkenntnisse: Ich habe gerade mal auf dem iPhone mit Port 8085 (also mit stylesheetPrefix touchpad) getestet. Passt zwar von der Oberfläche nicht, aber longpoll geht einwandfrei.

Daraufhin habe ich mir das Verhalten der Ports auf dem Raspberry (mein FHEM-Server) mit netstat angesehen.
Ergebnis:
Wenn ich fhem über Port 8085 aufrufe, dann ist es so, wie Du es beschreibst. Es ist nur ein Port belegt, und wenn man z. B. eine Lampe schaltet, wird ein neuer Port geöffnet, und der alte kurz danach (max 1-2 Sekunden) geschlossen.
Wenn ich das Ganze über Port 8084 mache, dann bleibt jedoch der zweite Port ca. 30 Sekunden (!) offen, bevor er im netstat verschwindet oder ein wait_close angezeigt wird. Und kein Icon wird aktualisiert.

Also habe ich bei Port 8084 (webPhone) mal touchpad als stylesheetPrefix hinterlegt und schon geht es auch über Port 8084. Nun habe ich es wieder zurück auf smallscreen gesetzt.
Effekt: Es geht immer noch ... Das hatte ich allerdings schon einmal, und leider ist das dann irgendwann auch wieder vorbei.

Kannst Du mir noch irgendeinen Anhaltspunkt liefern, wie ich die Ursache herausfinde? Auffällig bleibt das mit netstat sichtbare Verhalten. Wenn ich eine Seite komplett neu aufrufe, bleiben (wenn longpoll nicht funktioniert) ca. 6-7 Ports für 30 Sekunden belegt.

darkHorizon

Kann das hier auf iPhone und iPad nachvollziehen. Betrifft nur :8084. Wenn ich auf einem Gerät auf Design touchpad und wieder zurück wechsle, läuft es erst mal. Parallel am anderen Gerät funktioniert dann immer noch nichts. Hab übergangsweise jetzt auf longpoll verzichtet und auf refresh 5 gestellt.

darkHorizon

Wenn ich das Attribut longpollSVG 1 hinzufüge, scheint es zu funktionieren. Ich musste allerdings die Homescreenverknüpfung löschen und neu anlegen.