Mikä on Socket.IO?

Socket.IO on JavaScript-kirjasto, joka mahdollistaa reaaliaikaisen, kaksisuuntaisen viestinnän web-asiakkaiden ja palvelimien välillä. Vaikka se käyttää WebSocketia ensisijaisena siirtoprotokollana, se palautuu automaattisesti HTTP long-pollingiin, kun WebSocket ei ole saatavilla, mikä tekee yhteyksistä luotettavampia eri verkkoympäristöissä ja välityspalvelimissa. Socket.IO lisää oman protokollakerroksen raa'an siirtoprotokolan päälle — mukaan lukien mukautetun kättelyprotokollaan, sydämenlyönnit, automaattisen uudelleenyhteyden ja nimetyn tapahtumajärjestelmän — joten se ei ole yhteensopiva tavallisen WebSocket-palvelimen kanssa.

Socket.IO:n keskeinen ominaisuus on sen tapahtumamalli: sen sijaan että lähettäisivät raakoja viestejä, asiakkaat ja palvelimet lähettävät ja kuuntelevat nimettyjen tapahtumien (esim. chat message, user joined) avulla, mikä tekee sovelluslogiikasta puhtaampaa ja helpommin organisoitavaa.

Työkalun kuvaus

Tämä työkalu tarjoaa interaktiivisen Socket.IO-asiakkaan, joka toimii kokonaan selaimessa. Muodosta yhteys mihin tahansa Socket.IO-palvelimeen, valitse nimetty tapahtuma, kirjoita teksti- tai JSON-viestejä, lähetä ne ja katso saapuvat tapahtumat ja palvelimen vastaukset näkyvän aikaleimalla varustetulla lokilla. Se näyttää myös aktiivisen siirtokerroksen (WebSocket tai polling), jotta voit varmistaa, että odotettu päivitys on tapahtunut.

Ominaisuudet

  • Nimettyjen tapahtumien tuki — määritä mikä tahansa tapahtuman nimi ennen lähettämistä, jotta viestit saapuvat oikeaan kuuntelijaan palvelimella.
  • Siirron näkyvyys — näyttää, käyttääkö yhteys WebSocketia vai HTTP polling -siirtoa, ja päivittyy automaattisesti Socket.IO:n päivityskättelyprotokollaan jälkeen.
  • Teksti- ja JSON-tilat — kirjoita hyötykuormat pelkkänä tekstinä tai vaihda JSON-tilaan syntaksin korostuksella ja validoinnilla ennen lähettämistä.

Vaihtoehdot selitettynä

Palvelimen URL — Socket.IO-palvelimen täydellinen HTTP(S) URL (esim. https://example.com/socketio). Socket.IO-palvelimet kuuntelevat usein polulla kuten /socket.io/; asiakas käsittelee kättelyprotokollaan polun automaattisesti.

Tapahtuman nimi — Socket.IO-tapahtuman nimi, joka lähetetään viestiä lähetettäessä. Oletusarvo on message. Muuta tämä vastaamaan tapahtumaa, jota palvelimesi kuuntelee (esim. chat, ping, data).

Tietotyyppi — vaihda Teksti- ja JSON-tilojen välillä. JSON-tilassa hyötykuorma validoidaan ja lähetetään jäsennettynä objektina; Teksti-tilassa se lähetetään pelkkänä merkkijonona.

Automaattinen vieritys — kun se on käytössä, viestiloki vierityy automaattisesti uusimpaan merkintään, kun uusia viestejä saapuu.

Kuinka se toimii

Asiakas muodostaa yhteyden kohdepalvelimeen käyttämällä virallista Socket.IO JavaScript SDK:ta. Alkuperäisen HTTP-kättelyprotokollaan jälkeen Socket.IO yrittää päivittää siirron HTTP pollingista WebSocketiin. Työkalu raportoi, mikä siirto on aktiivinen, ja päivittää otsikon aina, kun päivitys tapahtuu. Kaikki palvelimelta vastaanotetut tapahtumat — riippumatta tapahtuman nimestä — tallennetaan ja näytetään lokissa aikaleimalla.

Vinkkejä

  • Jos yhteys onnistuu, mutta viestejä ei näy, varmista, että palvelin lähettää tapahtumia takaisin yhdistävälle asiakkaalle, ei vain muille asiakkaille.
  • Käytä tapahtuman nimen kenttää palvelimen puolen käsittelijöiden testaamiseen yksitellen ilman koodin kirjoittamista.
  • "Polling"-siirto, joka ei koskaan päivity "websocket"-siirtoon, osoittaa usein käänteisen välityspalvelimen, joka ei tue WebSocket-päivityksiä (esim. kuormantasaaja ilman liimattuja istuntoja).