Haku

Chat-sovellus Socket.IO-kirjaston avulla

QR-koodi

Chat-sovellus Socket.IO-kirjaston avulla

Tämän opinnäytetyön aiheena on esitellä WebSocket-teknologiaa, vertailla sitä vanhempiin kommunikaatiomenetelmiin ja syventyä vielä erityisesti Socket.IO-nimiseen kirjastoon, joka käyttää hyödykseen sekä WebSocket protokollaa, että vanhempaa HTTP-protokollaa. Tutkimukseen käytettiin lukuisia kirjallisia sekä internet-lähteitä. Tutkimustuloksena syntyi pienimuotoinen chat-sovellus, joka on rakennettu Socket.IO-kirjastoa käyttäen.

Työssä käsitellään HTTP-protokollaa sekä WebSocket-protokollaa. Ongelma vanhemmassa HTTP-protokollassa nykyajan reaaliaikaisiin sovelluksiin verrattuna on, että HTTP on suunniteltu niin sanotuksi vuorosuuntaiseksi yhteydeksi. Tämän vuorosuuntaisuuden kiertämiseksi on käytetty erilaisia tekniikoita, esimerkiksi HTTP-polling, sekä long-polling. Jos halutaan kuitenkin luoda aidosti reaaliaikainen sovellus, kuten esimerkiksi chat-sovellus, ei HTTP:n tarjoamat kiertotiet tälle ole riittäviä tälle yksisuuntaisuudelle. Reaaliaikaiset sovellukset tuovatkin parhaiten esiin WebSocketin edut vanhempaan HTTP:hen nähden. WebSocketin ollessa puhelinkeskustelua muistuttava, kaksisuuntainen ja välitön protokolla, se soveltuu täydellisesti chat-sovelluksen luomiseen. Joissakin tapauksissa WebSocket-yhteyttä ei kuitenkaan voida muodostaa, mistä syystä kirjastot kuten Socket.IO ovat hyvä valinta kehittäjälle. Socket.IO ratkaisee ongelman ”laskemalla” tarvittaessa WebSocket-yhteyden vanhem-paan http long-polling teknologiaan, joka jäljittelee reaaliaikaisuutta. Näin ollen Socket.IO on web-kehittäjälle ihanteellinen ratkaisu monessa tilanteessa.

Työssä esitellään vaihe vaiheelta, miten voidaan kehittää pienimuotoinen fullstack chat -sovellus käyttämällä Socket.IO kirjastoa. Sovellus koodattiin Ja-vaScript kielellä. Frontend toteutettiin React.js:llä ja backend puolestaan ra-kennettiin Node.js:llä käyttäen Express.js-kirjastoa. Socket.IO-kirjasto kytkettiin kumpaankin, ja sen avulla sovelluksessa toteutettiin kommunikaatio asiakkaan (frontend) ja palvelimen (backend) välillä. Opinnäytetyöprosessissa toteutettu sovellus oli kohtuullisen vaivaton toteuttaa ja sen perusteella voidaankin olettaa, että Socket.IO tulee kirjastona olemaan vielä pitkän aikaa käytetty ja ajankohtainen.

Tallennettuna: