Erlang orosz dp_push - erlang könyvtár alma push értesítési szolgáltatás

dp_push - Erlang könyvtár dolgozik az Apple Push Notification Service

dolgozni APNs származó dieselpuppet.com Könyvtár.

APN - mi ez és miért

Tegyük fel, hogy van egy projekt egy kliens-szerver architektúra, ahol a kliens végzi egy alkalmazás az iOS-eszközön. A csodálatos szerver kommunikál tökéletesen a csodálatos app, amíg aktív.

De itt a felhasználó elindított egy másik alkalmazás, vagy tegyük a készüléket a zsebében, vagy meg valahol, ahol nincs WiFi. És sajnos, a kommunikáció a szerver és az alkalmazás már nem létezik. A szerver kell szállítani néhány adatot, vagy tájékoztatja a néhány esemény.

Ahelyett, hogy egy üzenetet küld a kliens alkalmazás, így a szerver képes üzenetet küldeni APN. A APN adja azt az iOS-eszközön, ha rendelkezésre áll. A készülék egy üzenetet jelenít meg a felhasználó és az ő kérésére, hogy aktiválja a kívánt alkalmazást.

Ez hogy működik

APN jó dokumentációt. amely leírja a részleteket.

Szóval ajánlom csodálatos sín. ami egy jó kezdet. És különösen, feltárja a nehéz téma, bizonyítványok :)

dp_push - mi ez és miért

Mivel dolgozó APNs szükség szinte minden projektünk, úgy döntött, hogy egyesítse, és egy külön Diesel Bábszínház tolja könyvtárban. Nincsenek rejtett titkait ebben funkcionális ott, akkor csak meg kell, hogy gondosan hajtják végre. Ezért bátran feküdt egység nyílt forráskódú, a MIT licenc alatt.

A megvalósítás nagyon egyszerű, és az OTP-alkalmazás 4 modulból.

dp_push.erl főmodult fut egy alkalmazás, és egy homlokzat a könyvtár funkcióit.

dp_push_sup.erl biztos elindítja dp_push_sender és a következő dolog, amit nem esik :)

dp_push_sender.erl gen_server, küldj kéréseket és végrehajtja művek a visszacsatolás szolgáltatás (ebből alább).

dp_push_apns.erl Tartalmaz egy sor alacsony szintű funkciókat, így a csomagokat, SSL kapcsolat létrejött, a küldött adatokat.

Az alkalmazás bizonyos állami beállításokat. Ezek azonban teljesen nyilvánvaló - hol Konekt amely tanúsítványt használ, és a beállítások visszajelzést szolgáltatás (ebből alább).

készülék token

A token mérete 32 bájt, és így néz ki:

Munka vele Erlang, azt kell szem előtt tartani, hogy ez nem egy string vagy bináris. Ez nem helyes:

Ez a 16 bites szám. Ez így van:

visszacsatolás szolgáltatás

Minden szimpatikus nehezebb, mint az első gondolatom :) Előfordul, hogy az alkalmazás el lett távolítva a készülékről, és továbbra is, hogy küldjön neki egy üzenetet. Az Apple nem igazán akar APNs betöltött feleslegesen, így arra kérjük, hogy rendszeresen hozzáférni a visszajelzést szolgáltatás. kijutni az ilyen eszközök listáját, listát kell vezetni otthon, és ne küldje el őket üzeneteket.

Ezt a funkciót végrehajtani dp_push_sender.erl. Visszajelzés modul lekérdezi a szolgáltatás egy előre meghatározott frekvenciával és tárolja jelzőt DETS.

Ha úgy gondolja, egy kicsit, ez még mindig egy kicsit bonyolultabb, mint első gondolat :) Előfordul, hogy miután az alkalmazás el lett távolítva a készüléket, akkor ismét rátalált :) Tehát ott kell lennie egy módja annak, hogy távolítsa el a jelzőt dets. És a megfelelő módszert biztosított az API könyvtárat.

Még mindig van mock_feedback_service.erl. Ez a dugó, mellyel a hibakeresés a visszajelzési szolgáltatást. Csinál egy ilyen hibakeresés, folyamatosan telepítésével és eltávolításával az alkalmazást a készülék nagyon kényelmetlen.

Hogyan lehet csatlakozni dp_push a projekthez, és hogyan kell használni

Csatlakozó a függőség rebar.config:

És hívja az API módszerek:

Hogyan lehet fejleszteni több dp_push

Kéri, hogy APN is két típusa van: egyszerű és enchanced. Egyszerű kérésére szolgáltatás nem válaszol, és reagálni enchanced. Tudod venni ezeket a válaszokat, és például, mint a hibakezelés.

Nem lehet, hogy dp_push link library, és egy külön szerver (TCP és / vagy webes). Ebben az esetben, ez szolgál a több alkalmazás. Igaz, akkor szükség van tanúsítványa az alkalmazást, és válassza ki a kívánt tanúsítványt, amikor üzenetet küld.

Felveheti a gyűjtemény néhány statisztikai és felügyeleti eszközöket.