HTML5, webillesztőpontok
Szerver események korábban tárgyalt az ideális eszköz, ha azt szeretnénk, hogy egy sorozat üzenetet egy webszervert. De ez a kapcsolat jön létre teljesen egyoldalú. A böngésző nem tud válaszolni, vagy csatlakozzon egy komplex párbeszédet a szerver.
Ha létrehoz egy webes alkalmazás, amely megköveteli a súlyos kétoldalú együttműködés böngésző a web szerver, a legjobb megoldás, hogy végre azt (segítsége nélkül a Flash) valószínűleg használni az XMLHttpRequest objektumot. Attól függően, hogy az alkalmazás típusa, ez a megközelítés nem működik a kívánt módon. De itt van egy megfelelő számú potenciális problémákat.
Először is, az XMLHttpRequest objektum nem alkalmas a gyors többszörös üzenetküldési (pl chat). Ezután nem lehet társítani egy hívást a másik, így minden alkalommal, amikor a weboldal lekéréséhez a szerverről kell számítani a kezdetektől, hogy kinek az oldal tartozik. Ezért a komplexitás a kód feldolgozására számos kapcsolódó lekérdezéseket weboldal gyorsan nőnek szinte megvalósíthatatlan.
Mindezen problémák megoldás, bár ez még nem teljesen kész. Ez a megoldás a technológia Web Sockets (webillesztőpontok). amely lehetővé teszi a böngésző, hogy nyitott kapcsolatot a szerverrel és cseréje üzenetek tetszőleges időben.
Web Sockets technológia okozott nagy izgalmat az internetes fejlesztői környezet, de ez még mindig fejlesztés alatt áll, annak ellenére, hogy van egy jó böngésző kompatibilitás:
Böngésző támogatás Web Sockets
Abban a pillanatban, a legjobb, hogy teszteljék az oldalakat webillesztőpontok a Chrome böngésző, amely a leginkább következetesen támogatja őket.
Hozzáférés a webes aljzatok
Ahhoz, hogy a Web Sockets az webkiszolgáló webhely egy speciális programot kell végrehajtani, amely várhatóan nevezhető WebSocket szerver. Ez a program koordinálásáért felelős kölcsönhatás az összes résztvevő, és a futás után működik non-stop.
Sok hosting cégek nem teszik lehetővé a hosszan futó programok, ha nem fizet egy dedikált webszerver, azaz kiszolgáló, csak a honlapon. Ha van egy hagyományos megosztott tárhely, akkor valószínűleg nem lesz képes, hogy tegye rá használó oldalakon webillesztőpontok. Még ha sikerült futtatni a web szerver socket és tartsa üzemképes állapotban, a tulajdonos a tárhely valószínűleg felfedi be és ki.
Ahhoz, hogy te egy ötlet a skála a web-socket szerver, úgy néhány a feladatokat, amelyeket a szerver socket kell végrehajtani:
összeállítani „szótár” üzenet, más szóval, eldönteni, hogy milyen típusú üzeneteket érvényesek, és melyek nem;
tartalmaz egy listát az összes csatlakozó kliensek;
felismerjék a hibákat, amikor üzeneteket küld az ügyfelek és megállítani próbál kapcsolatba lépni velük, ha úgy tűnik, hogy már nincs ott;
feldolgozza az összes adatot a memóriában, azaz adatokat, amelyekhez való hozzáférés megkövetelheti, hogy minden ügyfél, és csinálni és biztonságosan. Itt van rengeteg lehetőséget implicit problémák, például akkor, amikor az ügyfél megpróbálja, hogy csatlakozzon a csere, a másik ki van kapcsolva, és ezeket az információkat tárolnak az azonos tárgy a memóriában.
Egy másik megközelítés az lenne, hogy valaki másnak a web szerver socket-kódot, és alkalmazkodni, hogy illeszkedjen az Ön igényeinek. Jelenleg egy nagy projektek száma (amelyek közül sok a szabad és nyílt forráskódú), amely kifejlesztett egy web-socket szerver különböző feladatok, különböző nyelveken a szerver szoftver.
Egyszerű WebSocket Client
Szemszögéből a Web Sockets weboldal működésének könnyű megérteni és használni. Az első lépés -, hogy hozzon létre egy WebSocket objektumot, és adja át az URL. A kód hasonló a következő:
URL karakterlánc szöveggel kezdődik ws: //, amely azonosítja az adott típusú kapcsolat az interneten aljzatba. Ez az URL egy webes alkalmazás fájl a szerveren (ebben az esetben socketServer.php forgatókönyv).
Webillesztőpontok lehet, mely nem csupán a webszerver. Weboldal nyithat a kapcsolatot egy websocket szerver fut egy másik webszerver, anélkül, hogy bármilyen további erőfeszítéseket igényel.
Az a tény, létrehozásának WebSocket tárgy kényszeríti az oldal megpróbál csatlakozni a szerverhez. Akkor van szükség, hogy az egyik a négy eseményt WebSocket kifogást: OnOpen (a kapcsolat), onError (ha hiba történik), onClose (ha lezárja a kapcsolatot), és onMessage (ha az oldal kap egy üzenetet a szerver):
Például abban az esetben, egy sikeres kapcsolat jó lenne, hogy küldjön egy megfelelő nyugtázó üzenetet. Egy ilyen üzenet érkezik módszerrel send () WebSocket tárgy, hogy a sima szöveg átadva paraméterként. A következő egy funkció, amely kezeli az eseményt OnOpen és küldi az üzenetet:
Feltételezhető, hogy a web szerver megkapja ezt az üzenetet, és választ adni.
Ha egy weboldal úgy dönt, hogy az általa munkát, akkor lezárja a kapcsolatot a disconnect () metódust.
Ebből felülvizsgálat webillesztőpontok akkor láthatjuk, hogy a használata a harmadik fél szerverén WebSocket nem okoz nehézségeket - csak azt kell tudni, hogy milyen üzenetet küldeni, és mi -, hogy számítson.
Ahhoz, hogy a kapcsolat a Web Sockets munkát a sok munka a színfalak mögött. Először is, a weblap keresztül kommunikál a HTTP általában szokásos. Ezután meg kell növelni a kapcsolatot az összekötő webillesztőpontok amely lehetővé teszi a szabad kétirányú kommunikációt. Ebben a szakaszban lehet probléma, ha van egy proxy szerver (mint például egy tipikus vállalati hálózat) között a kliens számítógép és a webszerver. A proxy szerver megtagadják az együttműködést, és megtöri a kapcsolatot. Ez a probléma megoldható kimutatására egy rossz kapcsolatot (eseményeken keresztül onError WebSocket objektum) és alkalmazása az egyik aggregátumok (polyfills) aljzatok leírt GitHubról honlapján. Ezek a töltőanyagok használják felmérési módszer, hogy versenyez egy web csatlakozóaljzat.
Példák a hálózat Web Sockets
Ha érdekel, hogy próbálja ki webillesztőpontok a hálózat sok olyan hely van, ahol meg lehet kezdeni a fejlődés.
A kezdéshez, próbálja ki a helyszínen websocket.org. amely egy egyszerű web szerver socket: Web oldal küld egy üzenetet, és visszatér ugyanazt az üzenetet weblapot:

Bár ez a web szerver socket, és nem jelent semmi különöset rajta, akkor próbáljon meg az összes funkcióját WebSocket objektumot. Sőt, ez a szerver képes kapcsolódni az oldalon talál: mind a kereskedelmi webszerver és tesztelni webszerver a számítógépen, vagy akár az oldalról, egyszerűen indítsa a merevlemezről:
Vannak szerverek, webillesztőpontok hogy más lehetőségeket, beleértve a következőket:
Egyszerű chat. Chat, amelyben az összes beszélgetés mindenkivel. Az elküldött üzeneteket az összes résztvevő a chat.
Multiplayer album. Ez az oldal összehozza webillesztőpontok HTML5 Canvas. Az a tény, hogy dolgozzon a vásznon, a vásznon jelenik meg a többi résztvevő, és fordítva. A koncepció egyszerű, de nagyon hatásos a gyakorlatban.
WebSocket szerverek
Ahhoz, hogy teszteljék a projekt webillesztőpontok szüksége van egy web-szerver socket, hogy az oldal tudott kommunikálni. Teszt szerver megtalálható sok helyen. Az alábbiakban linkeket a websocket szerverek egyes szerver oldali nyelv:
Ez az egyszerű és kissé kicsit nedves projekt egy jó kiindulási pont a webes-socket szerver PHP.
Számos internetes socket szerver minták Ruby, de ez, hogy alkalmazza a modellt „Event-Machine”, különösen népszerű.
Szerver webillesztőpontok kiterjesztéseként modul az Apache Python.
Egyszerűen címmel ez a projekt nem lehet mindenre kiterjedő. De tartalmaz egy teljes web-szerver socket C # .NET platformon a Microsoft.
Ki, ez a projekt hasonló NET projekt, hanem pusztán a Java.