Dolgozunk phpdaemon, HTML5 bemutató
Szerverek FastCGI, HTTP, CGI, FlashPolicy, Telnet, mysql kliens, memcached, MongoDB - ez egy nem teljes lista a funkcionalitás végre ez a démon által létrehozott orosz programozó Vaszilij Zorin.
Mi azonban most csak a WebSocket, és phpDae-mon is túl. A telepítési folyamat freyvorka saját árnyalatok, így laknak rajta egy kicsit részletesebben.
PhpDaemon igényel munkájához libevent könyvtár - egy cross-platform könyvtár aszinkron hálózatok, egy olyan mechanizmust, amely egy visszahívási függvény. Az adattár PECL kiterjesztés dolgozni libevent keresztül php, de begyűjteni, akkor szükség lehet phpize hasznosságát php-devel csomagot. Ez a tény azonban nem állíthat meg minket.
$ Sudo aptitude install php5-dev
Természetes, hogy a Debian vagy Ubuntu felhasználók számára. Ha a Red Hat, Fedora vagy CentOS, a csapat lesz:
$ Sudo yum install php53-devel
Ha a Windows ... nos, általában jobb, hogy egy virtuális gép.
Ezután telepítse a tágulási libevent (maga a könyvtár kell már telepítve van):
Pear install libevent
A telepítés után a php. ini felírni a következő sort, ha ez nem áll rendelkezésre:
(Fontos, hogy ezt az cli-tolmács, hogy az az út, hogy a konfigurációs fájl írja: / etc / php5 / cli / php ini ..)
Végül állítsd PhpDaemon:
Git clone git: // GitHub. com / kakserpom / phpdaemon. git chmod + x phpdaemon / bin / phpd
Ln - s / usr / local / phpdaemon / bin / phpd / usr / bin / phpd
Ln - s / usr / bin / phpd / etc / init. d / phpd frissítés-rc. d phpd alapértékekre
Bár a dob, akkor biztosan sietett, és talán a konzol kiesik néhány hibát. Ez nem probléma, kijavítani most. Először is, módosítsa a konfigurációs fájl - phpdaemon / conf / phpd. conf. Ő lesz kinézni:
Felhasználói gyökér; root csoport;
ServerStatus kiváltságos; engedélyezés 1; hallgatni-8080: ExampleWebSocket / Usr / local / lib / phpdaemon / alkalmazások / ExampleWebSocket. php: ListenPort 8047; felhasználó www; WebSocketOverCOMET Path = / usr / local / lib / phpdaemon / AppResolver. php Tartalmazza conf. d / * conf .: Itt vagyok én, nem tér ki a részleteket phpdaemon környezet konfiguráció, a teljes konfigurációs fájl adok csak akkor könnyen felhasználható a kísérleteikben az olvasó. A legfontosabb tervezési és Server példában-WebSocket. Az első közülük ki a webillesztőpontok és a második regiszter teszt alkalmazás. Az útvonal paraméter utal a fizikai helyét. Egy nagyon fontos paraméter a konfigurációs vonal Path = / usr / local / lib / phpdaemon / AppResolver. php, A következő utunkat ReSolv Fájl (file, értelmezi a kérést, és összeköti őket az alkalmazás). Magát a fájlt leszünk a lehető legegyszerűbb: Most zavarja, hogy az ügyfél része. A phpdae-mon eloszlás tartalmaz egy jó eszköz, hogy teszteljék a technológia. A mappában phpdaemon / ügyféloldali csatlakozók / WebSocket / vannak beállítva js-fájlok és a minta html-oldalak, dolgozó webillesztőpontok, minimális beállítási (ábra. 105). És böngészők, amelyek nem támogatják a WebSocket készült emulációs folyamat segítségével COMET technológia / Long egyesítve és még vaku. De mi nem vagyunk nagyon érdekes, nem fogjuk keresni a könnyebb utat, és levelet WebSocket-ügyfél: Funkció messageEvent (MSG) Funkció closeEvent () Ábra. 105. Munka WebSockets Itt azt látjuk, három gomb, amelyek közül az első létrehoz egy socket (és így létrehozza a kapcsolatot), ami WebSocketConnection funkciót, ami viszont megteremti a WebSocket Object () konstruktor paraméter, amely a mi url-WebSocket alkalmazás. Egy második, opcionális paraméter - a protokoll, lehet, hogy több. A kapcsolat létrejötte után (mi erről értesíti a megfelelő figyelmeztető jelzéssel), akkor használja a Küldés gombra ping üzenetet küld a socket. Amikor üzenet érkezik a szerver működik onmessage esemény, ami a mi esetünkben, egy üzenet jelenik meg a szerver válaszát (ábra. 106). Key bezárása WebSocket lezáró csatlakozó - ez a kölcsönhatás területén Mivel a szerver megszűnik. Küldött és fogadott adatok formájában húrok, de semmi sem akadályozza a csere és a JSON-objektumok: Funkció sendText () Típus: "üzenet", szöveg: "Hello WebSockets.!" Id: clientid, dátum: Dátum. Most () WS. Levél (JSON stringify (msg).); Ábra. 106. A via WebSocket Röviden, minden, mint egy hagyományos kliens-szerver web interakció. Hogyan működik a backend, van, szigorúan véve, nem érdekli, de nézzük meg annak végrehajtása csak az általános fejlődését. * Úgynevezett ha új keret érkezett. * @param húr Frame tartalmát. * @param egész Frame-típusú. Nyilvános funkció onFrame ($ adat, $ type) Daemon :: log ( 'ExampleWebSocket:' Pong 'beérkezett ügyfél.');> Ezek közül az első az úgynevezett amikor egy weboldal aljzat és visszaad egy új munkamenetet vele. A második az a felismerés, hogy a munkamenet és onFrame eljárás során megkapta az üzenetet, és küld egy választ. Hogy most kap alapján a jelenlegi eszköztárát? Igen, szinte minden akadály formájában HTTP-protokoll nincs többé. Inkább HTTP még mindig itt van, de a funkciók az építészet - már nem akadály. Beavatkozást a másik - a gyenge technológiai támogatása mellett mindkét böngésző és a Web szerverek. De nem hiszem, hogy bárki kétségbe vonja, hogy ez az egész átmeneti. Sokkal jelentősebb máshogy néznek ki, „veleszületett” technológia hiánya - nem korlátozták, milyen hosszú a kérelem életet. A tény az, hogy WebSockets - TCP-socket, hanem HTTP-kérést, akkor nem a természet „kérés / válasz a kérésre”, és, hogy amellett, hogy hasznot, van egy hátránya - a kényelmetlenséget üzemeltetése, legfeljebb egy kérelem. Nos, nincs csodaszer, csak a fejlesztő mindig szem előtt tartani, ez a viselkedés kölcsönhatásba lépve a szerver.Ön is érdekelt a következő cikkeket: