JavaScript

WebSocket példa program

WebSocket példa program

A WebSocket protokoll lehetővé teszi a kétirányú kommunikációt az ügyfél és a szerver között. Ez a folyamat hasonlít ahhoz, ahogyan a telefonján hívások zajlanak: először létre kell hoznia a kapcsolatot, majd megkezdheti a kommunikációt egymással. A WebSocket protokollt szinte mindenhol használják - a többjátékos böngészőjátéktól a csevegőalkalmazásokig.

Ez a cikk bemutatja, hogyan hozhat létre WebSocket protokollt, és hogyan használhatja azt több felhasználóval való kommunikációhoz.

Előfeltételek

Mielőtt továbblépne a WebSocket protokoll létrehozásának és használatának folyamatába, először telepítenie kell néhány folyamathoz szükséges dolgot. Az első dolog, amit telepítenie kell, a Node.js, egy szerveroldali platform, amely konvertálja a JavaScript programozási nyelvet gépi kódgá, amely lehetővé teszi a JavaScript futtatását közvetlenül a számítógépen. A Node telepítéséhez.js, a Windows felhasználói egyszerűen át tudnak menni a hivatalos Node-ra.js webhelyen, és kattintson a képernyő közepén található zöld LTS gombra.

Linux és macOS felhasználók esetén kattintson a gombra Letöltések szakasz a weboldal alfejlécében.

Miután kinyitotta a Letöltések szakaszban láthatja a telepítési fájlokat mindhárom nagyobb platformra. Válasszon egy csomagot, amelyet a rendszere támogat.

Futtassa a letöltött fájlokhoz tartozó telepítőt és a Node-ot.js telepítve lesz a számítógépére. Annak ellenőrzéséhez, hogy a program telepítve van-e, nyissa meg a terminált, és adja ki a következő parancsot:

$ csomópont -v

A Node telepítése után.js, most hozzáfér a különböző JavaScript modulokhoz, amelyek hosszú távon hatékonyabbá teszik munkáját. Nyissa meg azt a könyvtárat, amelyben létre kívánja hozni az ügyfél- és kiszolgálóarchitektúrát, majd nyissa meg a terminált a könyvtárban, és futtassa a következő parancsot:

$ npm init -y

Ezt a parancsot használják a csomag létrehozására.json fájl, amely lehetővé teszi különböző Node beállítását és telepítését.js csomagok. Telepítse a WebSocket protokollcsomagot a következő parancs kiadásával a terminálon:

$ npm install ws

Hozzon létre három nevű fájlt index.html, kliens.js és szerver.js. Amint a nevek jelzik, ezek a JavaScript fájlok a WebSocket protokollunk kliens és szerver architektúráját jelentik. Most végre elkezdhetjük írni kliens- és szerveralkalmazásaink kódját.

WebSocket szerver létrehozása

WebSocket szerver létrehozásához először a kiszolgáló kódjának megírásával kezdjük. Nyissa meg a szerver.js az előző szakaszban a szövegszerkesztőben vagy az IDE-ben létrehozott fájlt, és írja be a fájlba a következő.

const WebSocket = igényel ('ws');
const ws = új WebSocket.Szerver (port: 8080);
konzol.napló ("Server elindítva");
ws.on ('kapcsolat', (wss) =>
konzol.napló ("Új ügyfél csatlakozik")
wss.send ('Üdvözöljük a szerveren!');
wss.be ('üzenet', (üzenet) =>
konzol.napló ('Szerver beérkezett: $ message');
wss.send ('Megvan az üzeneted:' + üzenet);
);
);

Most részletesebben elmagyarázzuk, hogy az egyes sorok mit csinálnak.

Kód Magyarázat

Amint azt korábban említettük, néhány beépített modul elérhető a Node-ban.js, amelyek sokkal könnyebbé teszik munkáját. Ezeknek a moduloknak az importálásához a megkövetelik kulcsszó.

const WebSocket = igényel ('ws');
const ws = új WebSocket.Szerver (port: 8080);
konzol.napló ("A szerver elindítva");

Az első sor a csomópont importálására szolgál.js WebSocket modul. Ennek a modulnak a segítségével a következő sorban létrehozzuk a WebSocket szerverünket, amely a 8080-as porton hallgat. A konzol.napló () sor egyszerűen azért van, hogy tudassa velünk, hogy a szerver elindult. Látni fogja ezt a terminálon belül, amikor a következő parancsot futtatja a terminálon:

$ node szerver

A következő sorban kapcsolatot létesítünk a szerver és az ügyfél között.

ws.on ('kapcsolat', (wss) =>
konzol.napló ("Új ügyfél csatlakozik")
);

A kapcsolat létrejötte után a wss.send () sor üzenetet küld az ügyfélnek. Ebben az esetben az üzenet „Üdvözöljük a szerveren.”

wss.send ('Üdvözöljük a szerveren!');

Végül a wss.Az on ('üzenet') a kiszolgálónak kell fogadnia az üzenetet az ügyféltől. Megerősítésképpen a szerver ezt az üzenetet visszaküldi az ügyfélnek az utolsó sorban.

wss.be ('üzenet', (üzenet) =>
konzol.napló ('Szerver beérkezett: $ message');
wss.send ('Megvan az üzeneted:' + üzenet);
);

WebSocket kliens létrehozása

A kliens oldalon mindkét indexre szükségünk van.html fájl és az ügyfél.js fájl. Természetesen egyszerűen hozzáadhatja a tartalmat az ügyféltől.js fájlt az indexébe.html fájlt, de inkább külön tartom őket. Először nézzük meg az ügyfelet.js kód. Nyissa meg a fájlt, és írja be a következő sorokat a fájl belsejébe:

const socket = new WebSocket ('ws: // localhost: 8080');
foglalat.addEventListener ('open', () =>
konzol.napló ('Csatlakozás a kiszolgálóhoz!');
);
foglalat.addEventListener ('üzenet', (msg) =>
konzol.napló ('Ügyfél beérkezett: $ msg.adat');
);
const sendMsg = () =>
foglalat.send ('Hogy megy ez amigo!');

Kód Magyarázat

Mint a szervernél.js, létrehozunk egy új WebSocket-et, amely hallgatja a 8080-as portot, amely a helyi gazda: 8080 szakaszában.

const socket = new WebSocket ('ws: // localhost: 8080');

A következő sorban, addEventListener arra készteti az ügyfelet, hogy meghallgassa a jelenleg zajló eseményeket. Ebben az esetben a szerver létrehozása és elindítása lenne. A kapcsolat létrejötte után az ügyfél üzenetet küld a terminálnak.

foglalat.addEventListener ('open', () =>
konzol.napló ('Csatlakozás a kiszolgálóhoz!');
);

Ismét az ügyfél meghallgatja a jelenleg zajló eseményeket. Amikor a szerver üzenetet küld, az ügyfél megkapja ezt, majd megjeleníti az üzenetet a terminálon.

foglalat.addEventListener ('üzenet', (msg) =>
konzol.napló ('Ügyfél beérkezett: $ msg.adat');
);

Az utolsó néhány sor egyszerűen egy olyan funkció, ahol az ügyfél üzenetet küld a szervernek. Ezt a html fájlunk egyik gombjával összekapcsoljuk, hogy jobban megértsük ennek működését.

const sendMsg = () =>
foglalat.send ('Hogy megy ez amigo!');

HTML fájl előkészítése

Végül nyissa meg az indexet.html fájlt, és adjon hozzá egy hivatkozást az ügyfeléhez.js fájl benne. Esetemben egyszerűen hozzáadom a következő kódsorokat:






Ügyfél





Amint az alábbi sorokban láthatja, src (a script tag belsejében) az ügyfél javascript fájljára utal. A sendMsg függvény, amelyet az ügyfél létrehozott.js fájlt, a gomb onClick funkciójához is csatlakoztatták.


Mindent összerakva

Most elkezdheti tesztelni kliens és kiszolgáló architektúráját. Először nyissa meg a terminált, és futtassa a következő parancsot a kiszolgáló indításához:

$ node szerver

A szerver indítása után nyissa meg azt a könyvtárat, amelyben az indexe található.html fájl van, és kattintson rá duplán a böngészőben történő megnyitásához. A terminálon a következő üzenet jelenik meg arról, hogy egy ügyfél csatlakozott:

A szerverről az ügyfélnek küldött üzeneteket a jobb egérgombbal megnyomva, majd megnyitva is ellenőrizheti Ellenőrizze ablak. Ebben az ablakban kattintson a gombra Konzol szakaszban, és láthatja a szerverről küldött üzeneteket.

Miután rákattintott a gombra, mind a szerver, mind az ügyfél képes üzeneteket küldeni és fogadni egymásnak és egymástól.

szerver:

Ügyfél:

Voilà, a WebSocket kapcsolatod létrejött!

Következtetés

A WebSocket protokoll kiváló módja a kliens és a szerver közötti kommunikáció megteremtésének. Ezt a protokollt több területen használják, beleértve a többjátékos böngészős játékokat, a különböző közösségi média platformok csevegőrendszereit, sőt a kódolók közötti együttműködési folyamatokat is.

Csata a Wesnothért 1.13.6 Megjelent a fejlesztés
Csata a Wesnothért 1.13.A múlt hónapban megjelent 6 a hatodik fejlesztési kiadás az 1-ben.13.x sorozat, és számos fejlesztést hajt végre, nevezetesen ...
A League of Legends telepítése az Ubuntu 14-re.04
Ha rajongsz a League of Legendsért, akkor ez egy lehetőség arra, hogy teszteld a League of Legends játékot. Ne feledje, hogy a LOL a PlayOnLinux rends...
Telepítse a legújabb OpenRA stratégiai játékot az Ubuntu Linux rendszerre
Az OpenRA egy ingyenes / ingyenes valós idejű stratégiai játékmotor, amely újjáépíti a korai Westwood játékokat, mint például a klasszikus Command & C...