Názor k článku
Skype 4.2 a starší už v Linuxu nefunguje, uživatelé musí aktualizovat od Lael Ophir - Ad Pokud na telefonu neni Skype spusten, uzivatel...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 8. 2014 0:31

    Lael Ophir (neregistrovaný)

    Ad Pokud na telefonu neni Skype spusten, uzivatel stejne zpravy neprijima, i kdyz telefon je zapnuty - to se mýlíte. Koukněte se, jak jsou řešené push notifikace. Jako příklad si můžeme vzít iOS, na ostatních platformách je to podobné. Výrobce aplikace má přidělené Push Application ID. Když chce server zobrazit na telefonu notifikaci (například příchozí zprávu na Skypu), pošle na server společnosti Apple notifikaci pro dané zařízení, s daným Push Application ID. Na telefonu aplikace v danou chvíli neběží, a OS má otevřené jediné persistentní http spojení na server společnosti Apple (což je stav ve kterém CPU spí a čeká na interrupt). Když přijde notifikace, OS telefonu dostane z http spojení kus dat s notifikací, a tu zobrazí formou změny ikony (u WP změnou dlaždice), textové zprávy, případně vydá zvuk.
    https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

    Tenhle mechanismus nevyžaduje, aby pro přijetí notifikace aplikace na telefonu běžela. Tím se šetří paměť, CPU, a v důsledku toho i baterka (což je hlavní přínos). Apple využití tohoto mechanismu požaduje v podmínkách pro přijetí aplikace do Store: "5.1 Apps that provide Push Notifications without using the Apple Push Notification (APN) API will be rejected"
    https://developer.apple.com/appstore/resources/approval/guidelines.html#push-notifications

    Tenhle mechanismus má samozřejmě tu nevýhodu, že když telefon nemá konektivitu, z hlediska serveru se může dále tvářit jako že je připojený. Teprve při odeslání zprávy se zjistí, že ji na telefon nelze poslat. Je to problém společný všem implementacím.

    To co navrhujete vy je běžet aplikaci na telefonu po celou dobu, a pravidelně provádět ping na server. Bohužel to vyžaduje, aby aplikace běžela, měla alokovanou paměť a žrala baterku. Ještě drsnější je to v případě, kdy vám takových aplikací běží na telefonu víc, a všechny se občas probouzejí a komunikují. S takovou byste baterku vybil fakt rychle.